使用 iOS 模拟器的 AVAudioPlayer 错误
Posted
技术标签:
【中文标题】使用 iOS 模拟器的 AVAudioPlayer 错误【英文标题】:AVAudioPlayer Error using iOS Simulator 【发布时间】:2013-06-26 11:23:51 【问题描述】:以下问题:
<0xb03e7000> Error '!obj' trying to fetch default input device's sample rate
<0xb03e7000> Error getting audio input device sample rate: '!obj'
<0xb03e7000> AQMEIOManager::FindIOUnit: error '!dev'
我已经在 *** 上发现了这个问题,但没有一个 提供的解决方案对我有用。
代码:
#import "CJTActionViewController.h"
@interface CJTActionViewController()
@property NSURL *url;
@property NSData *songFile;
@property AVAudioPlayer *audioPlayer;
@end
@implementation CJTActionViewController
- (void)viewDidLoad
[super viewDidLoad];
self.url = [NSURL fileURLWithPath: [NSString stringWithFormat:@"%@/cannon_01.wav", [[NSBundle mainBundle] resourcePath]]];
self.songFile = [[NSData alloc] initWithContentsOfURL:self.url];
self.audioPlayer = [[AVAudioPlayer alloc] initWithData:self.songFile error:nil];
self.audioPlayer.delegate = self;
self.audioPlayer.numberOfLoops = 0;
- (IBAction)firePressed(id):sender
[self.audioPlayer play];
@end
委托已设置。不知道它是否重要,但在另一台 Mac 上 代码运行没有问题。
我使用 ios 6.1 和模拟器 6.1
【问题讨论】:
【参考方案1】:我遇到了同样的问题,并且能够通过调整我正在运行模拟器的 Mac 上的声音设置来解决它,每个 the answer to this question。我使用的是外部声卡,并通过以下方式更改我的 Mac 上的音频设置:
输入:内置麦克风 输出:内部扬声器希望这会有所帮助。我的代码和你的很相似,我认为这根本不是你的代码的问题。
【讨论】:
谢谢!麦克风输入为空,osx 未检测到任何输入源。我在麦克风输入中插入了插孔,错误消失了。 可以确认,将耳机插入我的输入端口解决了这个问题,太奇怪了! 我有一个 iSight 摄像头连接到我的 mac mini,然后发生了这个错误。拔下 iSight,这个错误就消失了。感谢您提供检查音频的提示。【参考方案2】:确认连接音频输入设备(并重新启动计算机)可以解决问题。从 Macbook Air 切换到 Mac Pro Cylinder 后,我收到了这个错误。
我连接了我的 Bose AE 蓝牙耳机,终于从 Xcode 收到了一条有意义的消息,但它仍然中止:
16:04:10.781 WARNING: 246: Default audio device changed. Restart the simulator to have it use the newly-selected device.
2015-04-21 16:04:19.790 FatBirdsPetAdventure[1622:84473] 16:04:19.790 ERROR: 56: Start: Mach message timeout. Apparently deadlocked. Aborting now.
在重新启动模拟器并进行 XCode 舞蹈(从模拟器中删除应用程序、清理项目、重建)后,我收到了另一条消息:
16:06:13.847 ERROR: 56: Initialize: Mach message timeout. Apparently deadlocked. Aborting now.
最后重启机器后,就再也没有错误了。
【讨论】:
【参考方案3】:我花了几个小时试图弄清楚这一点,如果您没有麦克风或输入设备,那么 xcode 将无法正确初始化 AVAudioPlayer。
这就是为什么插入某种类型的输入设备可以工作,AVAudioPlayer 正在搜索输入设备。您可以在 iPhone 上运行相同的应用程序,它会运行良好。
所以在模拟器上运行时只需插入某种类型的输入设备,我还没有找到解决这个问题的方法。而且可能也不推荐。
【讨论】:
【参考方案4】:我的解决方案是: - 将系统偏好设置、音频输入设置为内部麦克风以外的其他内容 - 在模拟器中,将输入设置为内部麦克风 如果它们都相同,它会以某种方式“锁定”麦克风。
致所有人:感谢您的回答。我真的认为这是我的编程不好,但实际上,这是由于 Apple 的糟糕设计。 这个话题在 6 年前就提出了,Apple 至今仍未摆脱这个 bug!
【讨论】:
您能否提供该错误的链接?【参考方案5】:我也遇到了同样的问题,但是耳机插孔上连接了扬声器。移除了插孔,调整了系统偏好设置将音频输出回内置扬声器,然后退出 Xcode 和模拟器并重新启动为我修复了它。
【讨论】:
【参考方案6】:尝试插入带有麦克风的耳机,希望问题能得到解决。同时重启 xcode 和模拟器。
【讨论】:
【参考方案7】:我遇到了同样的问题,我尝试更改音频设置,但对我没有帮助,我检查了运行低于 14.0 操作系统的模拟器是否发生了此问题,我在操作系统 14.4 的模拟器中运行了代码,然后它对我有用。
【讨论】:
以上是关于使用 iOS 模拟器的 AVAudioPlayer 错误的主要内容,如果未能解决你的问题,请参考以下文章
来自服务器的 MP3 文件在 iOS7 中无法使用 AVAudioPlayer 播放
带有 iOS 6 AVAudioPlayer 的 iPhone 4S 工作正常,但没有声音