我有一個應用程序,流式音樂使用AudioStreamer類由馬特加拉格爾。除了我希望能夠在數據流完成後跳到下一首歌曲時,它可以很好地用作後臺進程。不幸的是,這部分不起作用。 最初我有一個計時器監視流,但意識到,當這個計時器不再運行的應用程序背景。於是,我就在報文閱讀功能附加委託回調:iPhone:流式音樂,而應用程序是在後臺
void ASReadStreamCallBack(CFReadStreamRef aStream, CFStreamEventType eventType, void* inClientInfo)
{
AudioStreamer* streamer = (AudioStreamer *)inClientInfo;
double percent = [streamer progress]/[streamer duration];
if(percent>=0.98 || (percent>=0.95 && [streamer isIdle])){
if([streamer.delegate respondsToSelector:@selector(didFinishPlayingStream:)]){
[streamer.delegate didFinishPlayingStream:streamer];
streamer.delegate = nil;
}
}
[streamer handleReadFromStream:aStream eventType:eventType];
}
也能正常工作時,應用程序是在前臺,但是當應用程序被backgrounding不再起作用。委託方法基本上發送一個請求以獲取下一首歌曲的流URL,然後一旦它創建了一個新的AudioStreamer類
你的應用程序是如何在後臺播放的? – 2013-04-18 13:32:07