WatchOS3からはSceneKitやSpriteKitを使用することができる
サウンドを再生させる方法はいろいろあるが
あくまでゲームを作成するのを目的でSceneKitやSpriteKitでサウンドを再生させる
ソースコードを公開する。
まだ試行錯誤なので時間があれば更新していきます。
*SceneKit
SCNActionでサウンドを鳴らす場合
使用用途はSEを鳴らす場合
InterfaceController.m
SCNNode *soundNode = [SCNNode node];
SCNAudioSource *sorce = [SCNAudioSource audioSourceNamed:@"ok.mp3"];
SCNAction *action = [SCNAction playAudioSource:sorce waitForCompletion:true];
[soundNode runAction:action];
[scene.rootNode addChildNode:soundNode];
SCNAudioPlayerでサウンドを鳴らす場合
使用用途はBGMを鳴らす場合
注意)シミュレーターでは再生できても実機では再生されないしかしshouldStreamをtrueにすると再生できるようになる
InterfaceController.m
SCNAudioSource *audioSource = [SCNAudioSource audioSourceNamed:@"battle1.mp3"];
audioSource.loops = YES; //ループ
audioSource.volume = 1.0; //ボリューム
audioSource.positional = NO;
//[audioSource load];
audioSource.shouldStream = true; //true:再生時間が長い曲でも再生される
SCNAudioPlayer *player = [SCNAudioPlayer audioPlayerWithSource:audioSource];
[scene.rootNode addAudioPlayer:player];
*SpriteKit
SKActionでサウンドを鳴らす場合
使用用途はSEを鳴らす場合
InterfaceController.m
SKAction *action = [SKAction playSoundFileNamed:@"ok.mp3" waitForCompletion:true];
[spriteNode runAction:action];
SKAudioNodeでサウンドを鳴らす場合
使用用途はBGMを鳴らす場合
InterfaceController.m
SKAudioNode *node = [[SKAudioNode alloc] initWithFileNamed:@"battle1.mp3"];
node.autoplayLooped = true;
[spritekitScene addChild:node];