【问题标题】:An AVPlayerItem can occupy only one position in a player's queue at a timeAVPlayerItem 一次只能占据玩家队列中的一个位置
【发布时间】:2011-07-07 04:19:50
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您在 iOS5 beta 2 上遇到过这种情况吗?您应该查看 Apple 开发者论坛,因为我在 devforums.apple.com/message/467199 处按照 Peter Harley 的建议解决了同样的问题。希望对您有所帮助。
  • 是的,我是。这解决了这个问题。你就是男人!

标签: mpmovieplayercontroller


【解决方案1】:

我尝试了苹果开发者论坛中提供的各种解决方案。在我的情况下,只是将源类型从流式更改为未知:

// player.movi​​eSourceType = MPMovieSourceTypeStreaming;

  player.movieSourceType = MPMovieSourceTypeUnknown;

【讨论】:

    【解决方案2】:

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

    [self.mPlayer.movi​​ePlayer 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.

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-11-02
            • 2016-08-08
            • 1970-01-01
            • 1970-01-01
            • 2020-05-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多