如何在iOS6应用程序中通过http链接播放mp3格式的歌曲?

如何在iOS6应用程序中通过http链接播放mp3格式的歌曲?,ios6,xcode4.5,avaudioplayer,avplayer,Ios6,Xcode4.5,Avaudioplayer,Avplayer,最近我开始从事iOS应用程序开发。这些天我正在开发一款音乐播放器,它必须具备以下功能: -在线缓冲来自php web服务的歌曲。 -播放、暂停、停止、下一首歌、上一首歌。 -两个滑块,一个用于音量控制,另一个用于显示歌曲的播放时间。 -洗牌,重复这首歌 我在AVPlayer和AVAudioPlayer中尝试过这些方法,但在AVAudioPlayer中,不可能从url流式传输数据,我想,因为我已经尝试了很多,然后我使用AVPlayer来实现这一点,但它不支持音量控制等选项,甚至缓冲也不合适,例如,

最近我开始从事iOS应用程序开发。这些天我正在开发一款音乐播放器,它必须具备以下功能:

-在线缓冲来自php web服务的歌曲。 -播放、暂停、停止、下一首歌、上一首歌。 -两个滑块,一个用于音量控制,另一个用于显示歌曲的播放时间。 -洗牌,重复这首歌

我在AVPlayer和AVAudioPlayer中尝试过这些方法,但在AVAudioPlayer中,不可能从url流式传输数据,我想,因为我已经尝试了很多,然后我使用AVPlayer来实现这一点,但它不支持音量控制等选项,甚至缓冲也不合适,例如,如果缓冲在某个点停止。我需要一个紧急的帮助,为这个音频播放器任何教程任何例子,我可以很容易地理解,因为我在这个领域是新的。 这是密码

NSURL *url = [[NSURL alloc] initWithString:@"http://www.androidmobiapps.com/extrememusic/app/songs/1.mp3"];

[self setupAVPlayerForURL:url];
我在viewdidload调用这首歌

-(void) setupAVPlayerForURL: (NSURL*) url {
AVAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset];

audioPlayer = [AVPlayer playerWithPlayerItem:anItem];
[audioPlayer addObserver:self forKeyPath:@"status" options:0 context:nil];
}


}

我已经完成了您上面提到的作为一个类的函数,并将其开源。无论您想直接使用该类还是将其作为AVFoundation初学者示例。祝你好运

在GitHub上观看此回购

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

if (object == audioPlayer && [keyPath isEqualToString:@"status"]) {
    if (audioPlayer.status == AVPlayerStatusFailed) {
        NSLog(@"AVPlayer Failed");
    } else if (audioPlayer.status == AVPlayerStatusReadyToPlay) {
        NSLog(@"AVPlayer Ready to Play");
    } else if (audioPlayer.status == AVPlayerItemStatusUnknown) {
        NSLog(@"AVPlayer Unknown");
    }
}