0

アプリケーションがバックグラウンドになるまでオーディオ ストリーミングを再生しようとしています。

コードは次のとおりです。

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シミュレーター(iOS 5.0)でアプリを実行すると、ストリームプレーヤーは再生を続けます(私が望むこと)が、iOSデバイス(iOS 5.0)でテストすると、音量が低下し、プレーヤーが停止します。

注: ファイル info.plist には、次の行が含まれています。

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

そして、イベントが正しくトリガーされ、処理されるというアラート ボックスが表示されるようになりました。

4

1 に答える 1

0

わかりました、これはバグではありません: iOS で (ウェブラジオ ストリームのような) オーディオ ストリーミングを再生したい場合は、"audioSessionMode" パラメータを "Titanium.Media.AUDIO_SESSION_MODE_PLAYBACK" に設定する必要があります (他の値は正しいのでしょうか?)あなたの audioPlayer インスタンスで。

そうしないと、ストリーマーはバックグラウンド モードで正常に動作しますが、デバイスではなく iPhone シミュレーターでテストした場合のみです。

これが他の誰かに役立つことを願っています。

于 2012-08-30T09:53:05.510 に答える