2017-07-12 7 views
1

これはAVAudioPlayerNodeで音を鳴らすために使用しているコードです。それはちょうどビートアレイの最後の音を再生しています。 iPhoneでは、ビート配列のすべてのサウンドが同じ機能で同時に再生されます。Apple Watchで複数のサウンドファイルを(ミックスのように)同時に再生することはできますか?

-(void)playMix{ 
for (int i = 0; i< mix.beatsArray.count;i++) { 
    beat = [[WatchBeatObject alloc] initWithFileName:mix.beatsArray[i].fileName]; 
    [beat.audioPlayerNode play]; 
    [beat.audioPlayerNode scheduleBuffer:beat.buffer atTime:nil options:AVAudioPlayerNodeBufferLoops completionHandler:^{ 
    }]; 
} 

}

N.B:メソッドinitWithFileName:ハンドルを初期化し、AVAudioPlayerNodeと必要なすべてのものを作成します。

ありがとうございます。

答えて

0

WatchBeatObjectには、AVAudioSessionCategoryAmbientを設定する任意のカテゴリオプションがAVAudioSessionにありますか?はいの場合、それを設定し、異なる音をミックスします。

+0

いいえカテゴリオプションがありません.AVAudioPlayerNodeがAVAudioPlayerNodeに設定されています。 –

+0

@MarcKhairallah AVAudioNodeの代わりにAVAudioMixerNodeを試してみてください。複数の入力を1つの出力にミックスできます。引用:通常、ノードの出力フォーマットは、再生するファイルおよびバッファと同じ数のチャネルで構成する必要があります。それ以外の場合は、必要に応じてチャネルをドロップまたは追加します。これを行うには、AVAudioMixerNodeを使用する方が通常です。 – Terence

+0

ありがとうございました、私はすでにアプリを時計ではなく電話で再生するように変更しました。あなたの助けをもう一度ありがとう –

関連する問題