2012-08-27 96 views
0

我試圖播放音頻流,直到應用程序處於後臺。音頻播放器在後臺iOS模擬器上工作,但不在iOS設備上(相同版本)

下面是代碼:

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); 
    }); 

} 

音頻播放器對象之前,該方法intitialized:

this.streamer=Titanium.Media.createAudioPlayer({url:this.url_stream_stetienne,bufferSize:1000000}); 

這裏是我的問題:當我在iOS模擬器(的iOS 5.0)上運行的應用程序,流播放器繼續播放(我想要它),但是當我在iOS設備(iOS 5.0)上測試音量減少和播放器停止時。

注:文件的info.plist包含以下行:

<key>UIBackgroundModes</key> 
    <array> 
     <string>audio</string> 
    </array> 

,我現在用的是事件觸發正確處理和警報框。

回答

0

好的,這不是一個錯誤: 如果你想在iOS上播放音頻流(如webradio流),你必須設置「audioSessionMode」參數爲「Titanium.Media.AUDIO_SESSION_MODE_PLAYBACK」(也許其他人值是否正確?)在您的audioPlayer實例中。

如果你不這樣做,streamer將在後臺模式下正常工作,但只有在使用iPhone模擬器而不是使用設備進行測試時。

希望這有助於別人。

+0

有沒有人得到它的工作? – SSS

相關問題