我正在使用AVPlayer播放长音频mp3流音乐(8分钟),短音乐(1到3分钟)播放完美,但是随着这些更大的音乐,音乐开始播放,但播放后的一些随机时间(2和2之间) 3:20)玩家从头开始再次启动赛道。虽然播放器重启音乐,但状态信息(持续时间和当前时间)保持正常计数,无需重启,只需重启音频。有人有想法吗?
我正在播放的文件是:http://storage-new.newjamendo.com/download/track/57864/mp31/
玩家代码:
AVAudioSession *mySession = [AVAudioSession sharedInstance];
// Assign the Playback category to the audio session.
NSError *audioSessionError = nil;
[mySession setCategory: AVAudioSessionCategoryPlayback
error: &audioSessionError];
if (audioSessionError != nil) {
NSLog (@"Error setting audio session category.");
return;
}
// Activate the audio session
[mySession setActive: YES
error: &audioSessionError];
if (audioSessionError != nil) {
NSLog (@"Error activating audio session during initial setup.");
return;
}
player = [AVPlayer playerWithURL:[NSURL URLWithString:url]];
[player play];
以下是我如何跟踪有关正常计时的当前时间的信息。
AVPlayerItem *item = player.currentItem;
CMTime duration = [item duration];
CMTime currentTime = [item currentTime];
答案 0 :(得分:1)
似乎问题是我正在播放的mp3文件是mpeg-1而且Apple文档说我必须使用mpeg-2,所以我刚刚更改为正确的版本,并且错误没有发生试。
答案 1 :(得分:0)
我设法解决了这个问题,(对我来说)服务器将文件作为一个块发送。
我不知道输入和输出,但是流现在作为“远程”流提供(它以段告诉我被告知)。这不仅解决了这个问题,而且下面的这些事情开始对我起作用(就像提供NaN一样)。
float duration = CMTimeGetSeconds(self.avQueuePlayer.currentItem.duration);
我希望这有帮助,我没有被告知服务器上的更改内容。我的URL链接几乎可以用于所有其他设备,但是从我的应用程序和Safari中播放时遇到了这个问题。