3

目前我正在开发一个应用程序,它将从互联网上播放一个广播电台。我观看了本教程并逐步实现了它。它工作了一段时间,但现在我收到以下错误,该应用程序不会流式传输任何内容

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 流式传输电视流,可能是播放器存在某种冲突吗?

非常感谢你!

花岗岩

4

3 回答 3

4

我在虚拟机上尝试了上面的代码,结果发现虚拟机的音频配置有问题。在 macbook 上尝试了这个项目,它工作正常。

于 2013-08-07T08:07:14.227 回答
2

来自 AVAudioPlayer 的替代潜在问题

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

如果我在模拟器中运行应用程序之前连接了我的蓝牙耳机,它会在实例prepareToPlay上调用它时做一些讨厌的事情。AVAudioPlayer

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 模拟器并不能解决问题,它只是在再次挂起之前不再吐出警告。

在这一点上,我的蓝牙耳机不再处于与问题之前相同的状态。它们显示连接,但所有的音频都非常细微和遥远。它不再控制 iTunes(连接到蓝牙时 Mavericks 强制启动);如果 iTunes 没有运行,iTunes 将需要比正常时间更长的时间才能启动,并且似乎不会输出任何音频。到目前为止,我发现的唯一解决方案是完全重新启动 Mac。

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

注意:如果有人好奇,部署到物理设备的相同应用程序和连接到所述设备的相同蓝牙耳机:应用程序和来自它的音频工作正常。

于 2014-02-26T17:20:12.230 回答
0

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

于 2017-08-27T04:06:55.473 回答