[使用iOS模拟器的AVAudioPlayer错误

问题描述 投票:5回答:6

以下问题:

<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'

我已经在stackoverflow上找到了这个问题,但是没有一个提供的解决方案对我有用。

代码:

#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

ios-simulator runtime-error avaudioplayer
6个回答
16
投票

我也遇到了同样的问题,并且能够通过the answer to this question通过在运行模拟器的Mac上调整声音设置来解决此问题。我使用的是外部声卡,并且通过以下方式更改了Mac上的音频设置就可以了:

  • 输入:内置麦克风
  • 输出:内部扬声器

希望这会有所帮助。我的代码与您的代码非常相似,我完全认为这与您的代码无关。


3
投票

确认连接音频输入设备(并重新启动计算机)可以解决问题。将Git存储库移到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.

最后重新启动机器后,没有更多错误。


1
投票

我花了数小时试图弄清楚这一点,如果您没有麦克风或输入设备,则xcode将无法正确初始化AVAudioPlayer。

这就是为什么插入某种类型的输入设备的原因,AVAudioPlayer正在搜索输入设备。您可以在iPhone上运行相同的应用程序,它将运行正常。

因此,仅在模拟器上运行时插入某种类型的输入设备,我还没有找到解决此问题的方法。而且可能也不推荐。


0
投票

我只是遇到了同样的问题,但是在耳机插孔上连接了扬声器。移除了插孔,摆弄了系统偏好设置,然后将音频输出回内置扬声器,然后退出Xcode和模拟器,然后重新为我修复它。


0
投票

尝试插入附带麦克风的耳机,希望可以解决该问题。还重新启动xcode和模拟器。


0
投票

我的解决方法是:-设置系统偏好设置,将音频输入设置为内置麦克风以外的其他设置-在模拟器中,将输入设置为Internal Mic如果它们相同,它将以某种方式“锁定”麦克风。

致所有人:感谢您的回答。我真的以为这对我的编程不好,但是实际上,这是由于Apple的错误设计所致。这个话题是6年前提出的,Apple仍然没有摆脱这个错误!

© www.soinside.com 2019 - 2024. All rights reserved.