AVPlayerItem一次只能占用玩家队列中的一个位置

时间:2011-07-07 04:19:50

标签: mpmovieplayercontroller

尝试播放临时目录中的视频时出现此错误:

NSString *tmpDir = [NSTemporaryDirectory() stringByAppendingString:@"/"];
NSString *url = [tmpDir stringByAppendingString:videoToPlay];

MPMoviePlayerController *player =
[[MPMoviePlayerController alloc]
 initWithContentURL:[NSURL fileURLWithPath:url]];

为什么我收到此错误“AVPlayerItem一次只能占用玩家队列中的一个位置。”

代码是否正确?我错过了一些简单的东西吗?

6 个答案:

答案 0 :(得分:5)

全部。按照这个答案找到这个问题的解决方案。 devforums.apple.com/message/467199

我正在使用IOS 5 beta 2。

答案 1 :(得分:2)

我尝试了在apple dev论坛中提供的各种解决方案。在我的情况下,有效的只是将源类型从流式传输更改为未知:

// player.movi​​eSourceType = MPMovieSourceTypeStreaming;

  player.movieSourceType = MPMovieSourceTypeUnknown;

答案 2 :(得分:1)

使用以下语句来避免此类错误。请记住,您使用的sdk是在NDA下。

  

[self.mPlayer.movi​​ePlayer setControlStyle:MPMovieControlStyleDefault];

答案 3 :(得分:0)

尝试检查控件样式和源类型。 我得到这个错误,当更改源类型为unknow时(自动检测,也许)它是正确的。

答案 4 :(得分:0)

我得到了这个,因为我的movieSourceType参数无效,我认为你应该把MPMovieMediaTypeMask放在那里(视频/音频等),而是你应该放一个MPMovieSourceType。修复使它适合我

答案 5 :(得分:0)

在我的replaceCurrentItem上使用AVQueuePlayer时,这发生在我身上。

Apple声明您不应将此方法与AVQueuePlayer结合使用:https://developer.apple.com/documentation/avfoundation/avplayer/1390806-replacecurrentitemwithplayeritem

相反,我正在使用removeAllItems()的AVPlayerItem值测试insert(AVPlayerItem, after: AVPlayerItem?)nil

iOS12 Swift 5。