是否可以在 Apple Watch 上同时播放多个声音文件(如混音)?

Posted

技术标签:

【中文标题】是否可以在 Apple Watch 上同时播放多个声音文件(如混音)?【英文标题】:Is it possible to play multiple sound files simultaneously (like a mix) on Apple Watch? 【发布时间】:2017-07-12 14:15:17 【问题描述】:

这是我用来通过AVAudioPlayerNode 播放声音的代码。它只是播放 beats 数组的最后一个声音。在 iPhone 上,beats 数组中的所有声音都使用相同的功能同时播放。

-(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:^
    ];

注意:方法 initWithFileName: 处理初始化和创建 AVAudioPlayerNode 以及所需的一切。

提前谢谢你。

【问题讨论】:

【参考方案1】:

WatchBeatObjectAVAudiosession 中是否有任何类别选项来设置 AVAudioSessionCategoryAmbient?如果是,设置它,它们会混合不同的声音。

【讨论】:

不,它没有任何类别选项,它只有附加了 AVAudioPlayerNode 的 AVAudioEngine @MarcKhairallah 也许您可以尝试使用 AVAudioMixerNode 而不是 AVAudioNode,混音器可以将多个输入混合到单个输出。 Quote: 通常情况下,您会希望将节点的输出格式配置为与要播放的文件和缓冲区中相同数量的通道。否则,将根据需要删除或添加频道。通常最好使用 AVAudioMixerNode 来执行此操作。 谢谢,我已经将应用程序更改为在手机上播放声音而不是在手表上播放。再次感谢您的帮助

以上是关于是否可以在 Apple Watch 上同时播放多个声音文件(如混音)?的主要内容,如果未能解决你的问题,请参考以下文章

如何同时播放多个音频文件

Apple Watch 应用中的视频流

通过 iPhone 从 Apple Watch 播放声音

是否可以在实际 Apple Watch 设备上运行 WatchKit 应用程序?

是否可以专门向 Apple Watch 发送本地通知?

在 Apple Watch 上推送通知