簡體   English   中英

音頻播放器可以在后台的iOS模擬器上運行,但不能在iOS設備上使用(相同版本)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM