[英]Audio player work on iOS simulator in Background but does not on iOS device (same version)
我正在嘗試播放音頻流,直到應用程序在后台運行。
這是代碼:
var service;
if(isiOS4Plus()){
Ti.App.addEventListener('resumed',function(e){
if(service!=null){
if(winPlayer.controlStreamer)// if my controller (containing the audio player object) exists
{
//function that redeclare intervals and event listeners
winPlayer.controlStreamer.foregroundStreamer();
}
service.stop();
service.unregister();
}
});
Ti.App.addEventListener('pause',function(e){
if(winPlayer.controlStreamer)// if my controller (containing the audio player object) exists
{
//function that stop and remove intervals and event listeners
winPlayer.controlStreamer.backgroundStreamer();
}
service = Titanium.App.iOS.registerBackgroundService({url:'/player/sound.js'});
Ti.API.info("registered background service = "+service);
});
}
此方法之前已初始化音頻播放器對象:
this.streamer=Titanium.Media.createAudioPlayer({url:this.url_stream_stetienne,bufferSize:1000000});
這是我的問題:當我在iOS Simulator(iOS 5.0)上運行應用程序時,流播放器繼續播放(我想要它做什么),但是當我在iOS設備(iOS 5.0)上對其進行測試時,音量降低並且播放器停止。
注意:文件info.plist包含以下幾行:
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
現在,我在警報框中顯示事件已正確觸發和處理。
好的,這不是錯誤:如果您想在iOS上播放音頻流(如網絡廣播流),則必須將“ audioSessionMode”參數設置為“ Titanium.Media.AUDIO_SESSION_MODE_PLAYBACK”(也許其他值正確嗎?)在您的audioPlayer實例中。
如果不這樣做,則流光將在后台模式下正常工作,但僅在使用iPhone模擬器(而不是設備)進行測試的情況下。
希望這對其他人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.