所以,我的問題是,我試圖在AudioFileStream和OutputAudioQueue類的Xamarin.iOS上流音頻。我爲PacketDecoded和PropertyFound事件添加了處理程序,但它們沒有被觸發。怎麼了?我的代碼如下...Xamarin.iOS音頻流不工作,事件沒有被觸發
順便說一句,我主要複製了this screencast的代碼。
所以,我的問題是,我試圖在AudioFileStream和OutputAudioQueue類的Xamarin.iOS上流音頻。我爲PacketDecoded和PropertyFound事件添加了處理程序,但它們沒有被觸發。怎麼了?我的代碼如下...Xamarin.iOS音頻流不工作,事件沒有被觸發
順便說一句,我主要複製了this screencast的代碼。
您的代碼看起來是正確的......
1)我看到 「HTTP://」 在你的源代碼註釋。您是否從http://
源碼流發送,而不添加ATS異常?如果是這樣,dataTask.Resume();
是一個「無聲代碼失敗」,因此你的代表/事件將不會被調用,但是 iOS會記錄它。
檢查輸出日誌是這樣的:
StreamingAudio[13602:591658] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
使用https://
來源,但如果你要完全關閉ATS關閉來進行測試:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
注意:搜索iOS ATS
更多信息或細節爲了只允許來自你將要流式傳輸的服務器的非安全http://
,但是iOS的未來只有https://
,所以開始準備...... ;-)
2)如果提供給NSUrlSession的URL源產生一個連接被拒絕,那是無聲的失敗,並且沒有關於它的日誌記錄,當然也沒有你的委託/事件被調用......預測試您的流媒體網絡服務是活動的,請嘗試使用curl
,wget
等。測試流...
3)我看到您的流MP3音樂,所以你應該是行,但記得有數以百計的變化到格式和iOS不流/播放他們所以嘗試不同的MP3編碼通過不同的工具集只是爲了仔細檢查...
ATS是這個問題,非常感謝! – mkkekkonen