AVPlayer不会播放多次

时间:2012-10-31 07:55:41

标签: ios avfoundation avplayer

我通过AVPlayerItem& amp;播放音频时遇到一些奇怪的问题。 AVPlayer。

我有录音机和iPod项目选择器,来自它们的流都经过这样的代码:

  AVAudioSession *audioSession = [AVAudioSession sharedInstance];
  [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
  [audioSession setActive:YES error:nil];

  _playerItem = [[AVPlayerItem alloc] initWithURL:_soundFileURL];
  _player = [[AVPlayer alloc] initWithPlayerItem:_playerItem];
  [_player play];

一切都很好,除了一件事,我不能在第二次或更多时间播放这个流。它刚刚停止,停止后没有发现声音。有人可以提供建议吗,问题可能是什么?

3 个答案:

答案 0 :(得分:4)

您必须使用prepareToPlay将AVPlayer设置回流的开头并将currentPlaybackTime设置为0.

self.avPlayer.currentPlaybackTime = 0;
[self.avPlayer prepareToPlay];

答案 1 :(得分:0)

在Swift 4中

您可以使用下一行再次播放。

self.player?.seek(to: CMTime.zero)
self.player?.play()

很乐意提供帮助:)

答案 2 :(得分:0)

这是我的Swift 5,Xcode 12,macOS 11,iOS 14.2组合上发生的事情:

  • 我只播放一小段drop.wav声音,以便在游戏板上放置一块
  • 几个月前player.play()在我的环境中使用了较低的版本
  • 今天player.play()仅播放一次,删除下一​​首曲目是静默的
  • 添加player.seek(至:CMTime.zero)“有效”,但只有在第一次听起来正常时,第二,第三次……才是声音不同,更弱
  • 我的解决方法是每次在播放声音文件之前重新加载声音文件
  • 我为此实验录制了视频https://youtu.be/t6863IZkwTQ