LoginSignup
0
0

More than 5 years have passed since last update.

WatchOS3 SceneKitやSpriteKitでサウンドを再生

Last updated at Posted at 2016-11-06

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];
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0