获取audioinput设备采样率时出错:'!obj'

目前,我正在开发一个应用程序,将stream式无线电台从互联网。 我看了这个教程 ,并一步一步实现。 它运行良好一段时间,但现在我得到以下错误和应用程序不会stream任何东西

2013-07-20 10:22:40.653 ShqipCom[464:c07] [MPAVController] Autoplay: Enabling autoplay 2013-07-20 10:22:40.668 ShqipCom[464:c07] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0 2013-07-20 10:22:41.129 ShqipCom[464:c07] [MPAVController] Autoplay: Enabling autoplay 2013-07-20 10:22:41.572 ShqipCom[464:7103] <com.apple.coremedia.networkbuffering> Error '!obj' trying to fetch default input device's sample rate 2013-07-20 10:22:41.574 ShqipCom[464:7103] <com.apple.coremedia.networkbuffering> Error getting audio input device sample rate: '!obj' 2013-07-20 10:22:41.576 ShqipCom[464:7103] <com.apple.coremedia.networkbuffering> AQMEIOManager::FindIOUnit: error '!dev' 2013-07-20 10:22:41.577 ShqipCom[464:5403] <0xb0365000> AQMEIOManager::FindIOUnit: error '!dev' 

(LLDB)

触发玩家的IBAction看起来像这样

 -(IBAction)Play:(id)sender { NSString *stream = @"http://www.volksmusiknet.ch/stream.m3u"; NSURL *url = [NSURL URLWithString:stream]; NSURLRequest *urlRequest = [NSUrlRequest requestWithUrl:url]; [WebView loadRequest:urlRequest]; } 

也许值得一提的是,在另一个选项卡中,我尝试用MPMoviePlayerController来传输电视stream,这可能是因为播放器有点冲突吗?

非常感谢你!

格兰尼特

我正在虚拟机上面的代码尝试,并发现虚拟机有audioconfiguration的问题。 尝试了一个macbook上的项目,它工作正常。

AVAudioPlayer的替代潜在问题

当蓝牙audio设备连接到主机Mac(OS X 10.9.1)时,也可能在未在虚拟机中运行的模拟器上触发非常类似的问题。 在这种情况下,我遇到了使用AVAudioPlayer的问题。 我是从Xamarin.iOS运行的,但是它可能会以同样的方式影响原始的Obj-C dev。

如果在模拟器中运行应用程序之前连接了蓝牙耳机,则只要在AVAudioPlayer实例上调用prepareToPlay ,就会做出令人讨厌的事情。

iOS 6模拟器:崩溃

如果我第一次连接我的蓝牙耳机,然后尝试运行iOS 6模拟器中的应用程序,我得到了一个非常类似的错误,原来的问题,同样提及的采样率和AQMEIOManager (注意:一些堆栈跟踪是Xamarin – 具体但包括,以帮助人们诊断这个问题):

 <0xb0093000> Error '!obj' trying to fetch default input device's sample rate <0xb0093000> Error getting audio input device sample rate: '!obj' <0xb0093000> AQMEIOManager::FindIOUnit: error '!dev' mono-rt: Native stacktrace: 2014-02-26 09:36:08.115 SmudgesiOS[689:a07] <com.apple.main-thread> AQMEIOManager::FindIOUnit: error 'NoHW' 2014-02-26 09:36:08.115 SmudgesiOS[689:a07] <com.apple.main-thread> Prime failed (-66680); will stop (11025/0 frames) 2014-02-26 09:36:08.117 SmudgesiOS[689:a07] <com.apple.main-thread> AQMEIOManager::FindIOUnit: error 'NoHW' 2014-02-26 09:36:08.117 SmudgesiOS[689:a07] <com.apple.main-thread> Prime failed (-66680); will stop (11025/0 frames) ... mono-rt: 4 AudioToolbox 0x00a1aa7a _ZN21UISoundRendererStructC2EP17mach_msg_header_tmPK27AudioStreamBasicDescriptionPKhmmPK28AudioStreamPacketDescriptionPKvm + 90 mono-rt: 5 AudioToolbox 0x00a1bebe UISoundNewRenderer + 94 mono-rt: 6 AudioToolbox 0x009f3239 ___ZN15AQIONodeManagerC2Ev_block_invoke_0 + 121 

iOS 7模拟器:挂起(需要重新启动)

如果我在iOS 7模拟器中运行应用程序之前连接我的蓝牙耳机,事情会更烦人。 它挂起而不是崩溃的应用程序。 Xamarin报告的一些输出,我猜也可以在Xcode中看到。

 WARNING: 128: The default output device's sample rate was changed. WARNING: 245: Audio device's sample rate changed. You may need to restart the simulator. WARNING: 235: Default audio device changed. Restart the simulator to have it use the newly-selected device. 

重新启动iOS 7模拟器不能解决问题,它只是不再吐出警告,再次挂起。

在这一点上,我的蓝牙耳机不再处于问题之前的相同状态。 他们显示连接,但所有的audio是很渺小​​和遥远的。 它不再控制iTunes(当连接到蓝牙时,小牛部队会启动它); 如果iTunes没有运行,iTunes将比正常启动要花费更多的时间,并且不会输出任何audio。 到目前为止,我发现的唯一解决scheme是完全重新启动Mac。

重启后,但保持蓝牙断开连接,模拟器将在iOS 6或iOS 7变体中运行该应用程序。

注意:如果有人感到好奇,将相同的应用程序部署到物理设备上,并使用与所述设备相同的蓝牙耳机连接:应用程序和audio可以正常工作。

我在El Capitan的Xcode 6上开发Mac mini时遇到了这个错误,并使用内置audio输出或HDMI输出在iOS 8.4 Simulator中运行应用程序。 插入有线耳机并重新启动模拟器解决了问题