我正在尝试播放音频流,直到应用程序处于后台。
这是代码:
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>
我现在使用警报框,表明事件已正确触发和处理。