【问题标题】:AVAudioPlayer failing on iOS simulator onlyAVAudioPlayer 仅在 iOS 模拟器上失败
【发布时间】:2014-05-14 17:20:37
【问题描述】:

我有这段代码,在 iOS 应用中播放声音时,这似乎是相当标准的。

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"click"
                                     ofType:@"wav"]];

NSError *error;
self._audioPlayer = [[AVAudioPlayer alloc]
                initWithContentsOfURL:url
                error:&error];
if (error)
{
    NSLog(@"Error in audioPlayer: %@",
          [error localizedDescription]);
} else {
    self._audioPlayer.delegate = self;
    [self._audioPlayer prepareToPlay];
    [self._audioPlayer play];
}

它在设备上运行得非常好。

然而,在模拟器上,它不会播放任何东西,只是打印此错误消息(由于应用程序不会崩溃,因此会在某个低级别捕获该错误消息)。

2014-05-14 18:10:46.121 sample_app[7684:14303] 18:10:46.121 ERROR:     189: EXCEPTION thrown ('fmt?'): -

(这个错误可以打印多次)

调试时,一切正常,nserror 保持为零,url 有效,等等。

audioPlayerDidFinishPlaying:successfully: 是用 1 调用的事件。

有人遇到过同样的问题或对我的环境有什么问题提出建议吗?

非常感谢

【问题讨论】:

  • 更新你的mac os,然后再试一次.....我解决了这类问题
  • 我最近也注意到了这种情况。 8.1 模拟器,Xcode 6.1。

标签: ios audio ios-simulator avfoundation


【解决方案1】:

我遇到了同样的问题,并找到了一个奇怪的解决方案。试试这个:

  1. 退出模拟器
  2. 打开您的 OSX 系统偏好设置并选择声音。
  3. 选择输出为“耳机”​​li>
  4. 选择“内置麦克风”的输入(即使您认为这对在模拟器上播放音频没有任何影响)。
  5. 运行您的应用程序

不知道为什么会这样,一定是模拟器的错误。如果您在模拟器运行时进行这些更改,您会注意到 Xcode 中会弹出一条日志消息,警告您重新启动模拟器。

【讨论】:

    猜你喜欢
    • 2021-08-03
    • 2021-11-01
    • 2020-02-27
    • 2021-11-30
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多