AVPlayerItem 一次只能占据玩家队列中的一个位置
Posted
技术标签:
【中文标题】AVPlayerItem 一次只能占据玩家队列中的一个位置【英文标题】:An AVPlayerItem can occupy only one position in a player's queue at a time 【发布时间】:2011-07-07 04:19:50 【问题描述】:尝试从我的临时目录播放视频时出现此错误:
NSString *tmpDir = [NSTemporaryDirectory() stringByAppendingString:@"/"];
NSString *url = [tmpDir stringByAppendingString:videoToPlay];
MPMoviePlayerController *player =
[[MPMoviePlayerController alloc]
initWithContentURL:[NSURL fileURLWithPath:url]];
为什么我会收到此错误“一个 。”
代码不正确吗?我错过了一些简单的东西吗?
【问题讨论】:
您在 ios5 beta 2 上遇到过这种情况吗?您应该查看 Apple 开发者论坛,因为我在 devforums.apple.com/message/467199 处按照 Peter Harley 的建议解决了同样的问题。希望对您有所帮助。 是的,我是。这解决了这个问题。你就是男人! 【参考方案1】:我尝试了苹果开发者论坛中提供的各种解决方案。在我的情况下,只是将源类型从流式更改为未知:
// player.movieSourceType = MPMovieSourceTypeStreaming;
player.movieSourceType = MPMovieSourceTypeUnknown;
【讨论】:
【参考方案2】:使用以下语句来避免此类错误。请记住,您使用的 sdk 在 NDA 下。
[self.mPlayer.moviePlayer setControlStyle:MPMovieControlStyleDefault];
【讨论】:
【参考方案3】:尝试检查控件样式和源类型。 我收到此错误,并且当将源类型更改为未知时(自动检测,也许)它是正确的。
【讨论】:
【参考方案4】:我得到这个是因为我的movieSourceType 参数无效,我认为您应该在其中放置一个MPMovieMediaTypeMask(视频/音频等),但您应该放置一个MPMovieSourceType。修复它使它对我有用
【讨论】:
【参考方案5】:当我尝试在我的 AVQueuePlayer
上使用 replaceCurrentItem
时发生这种情况。
Apple 声明您不应将此方法与 AVQueuePlayer 一起使用:https://developer.apple.com/documentation/avfoundation/avplayer/1390806-replacecurrentitemwithplayeritem
相反,我使用 AVPlayerItem 的 nil
值测试 removeAllItems()
和 insert(AVPlayerItem, after: AVPlayerItem?)
。
iOS12 Swift 5.
【讨论】:
以上是关于AVPlayerItem 一次只能占据玩家队列中的一个位置的主要内容,如果未能解决你的问题,请参考以下文章
如何用本地目录中的 AVPlayerItem 类型的元素填充数组