8

以下问题:

<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

4

7 回答 7

23

我遇到了同样的问题,并且能够通过调整我正在运行模拟器的 Mac 上的声音设置来解决它,根据这个问题的答案。我使用的是外部声卡,并通过以下方式更改我的 Mac 上的音频设置就可以了:

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

希望这可以帮助。我的代码与您的代码非常相似,我认为这根本不是您的代码的问题。

于 2013-08-31T21:04:28.527 回答
3

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

最后重启机器后,就没有更多的错误了。

于 2015-04-21T21:27:11.547 回答
2

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

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

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

于 2015-04-21T03:12:03.137 回答
1

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

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

于 2020-02-19T18:09:43.287 回答
0

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

于 2015-05-17T22:07:56.317 回答
0

我遇到了同样的问题,我尝试更改音频设置,但它没有帮助我,我检查了运行低于 14.0 操作系统的模拟器是否发生了这个问题,我在操作系统 14.4 的模拟器中运行了代码,然后它为我工作。

于 2021-06-03T14:10:52.313 回答
0

尝试插入带有麦克风的耳机,希望问题会得到解决。还要重新启动 xcode 和模拟器。

于 2015-08-03T15:58:59.330 回答