【问题标题】:How to reduce cutoff when playing audio using airplay?使用airplay播放音频时如何减少截止?
【发布时间】:2016-03-17 08:26:17
【问题描述】:

从通过 AirPlay(使用iOS9.2)连接到 Apple TV 的 iOS 设备播放声音时,声音播放的第一秒左右会被切断。这种不需要的行为不是特定于应用程序的,而是系统范围的(例如,Apple 的官方应用程序也有这个错误)。

https://forums.developer.apple.com/thread/28086

是否有可以播放完整的audio file 的解决方法?例如在播放文件之前添加blank sounds?或者改变API 的调用方式?还是我应该等待Apple 的官方修复?

【问题讨论】:

  • 无论如何你都应该等待修复。但是考虑一下这个黑客。如果您的音频在前两秒内没有声音,即在您的原始音频中添加一个长度为两秒的空白音频,这样可以欺骗应用程序和电视之间同步的打嗝。为此使用车库乐队。或者在您的应用程序中使用线程,例如 GCD。 dispatch_async 用于异步操作。
  • 我刚刚使用 iOS 9.3 beta 3 (13E5200d) 的最新版本(截至 20160217)进行了测试。截止仅出现在第一次,而不是随后的音频播放。这与 iOS 9.2 形成鲜明对比,iOS 9.2 每次播放音频时都会发生。

标签: ios objective-c audio airplay apple-tv


【解决方案1】:
  1. 当前任何 iOS 版本似乎都不会出现此问题,因此我的第一个建议是升级。
  2. 如果您必须使用 iOS 9.2,那么我建议您播放一个空白音频文件 2 秒钟,然后开始播放完整的音频文件。

示例代码:

audioPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

[[NSNotificationCenter defaultCenter] addObserver:self
                                               selector:@selector(playEnded:)
                                                   name:AVPlayerItemDidPlayToEndTimeNotification
                                                 object:[audioPlayer currentItem]];

- (void)playEnded:(NSNotification *)notification
{
    // Start the full audio file here
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    相关资源
    最近更新 更多