2012-08-22 149 views
2

多个实例,我使用NSInvalidArgumentException”的原因‘的avplayeritem不能avplayer的’

MPMoviePlayerController

用于播放视频相关联,并在此我使用的自定义搜索栏跳转视频。但是当我不断地寻求前进和后退应用程序崩溃并抛出错误:

nsinvalidargumentexception' reason 'an avplayeritem cannot be associated with more than one instance of avplayer'

所以请建议。

谢谢

+0

您是否在每次跳跃时创建一个新的avplayer?并添加一些示例代码到您的问题:) – deanWombourne

+0

可能在这里同样的问题http://bit.ly/NGXMy3 –

+0

不。我不是每次创建avplayer。它只在视图加载时创建一次。 –

回答

6

有同样的经验。实现了movieSourceType设置不正确。例如,movieSourceType被设置为MPMovieSourceTypeStreaming,当它应该已经被MPMovieSourceTypeFile嵌入到包中的电影时。

13

曾有同样的问题,请尝试将像下面的SourceType中之后设置的contentURL,

moviePlayerController_ = [[MPMoviePlayerViewController alloc] init]; 
moviePlayerController_.movieSourceType = MPMovieSourceTypeStreaming; 
[moviePlayerController_.moviePlayer setContentURL:url]; 

来源:devforums.apple.com/message/467199

+0

+1这绝对解决了我的问题,但我应该指出,只有当我使用MPMovieSourceTypeStreaming时,才会发生崩溃。如果我使用MPMovieSourceTypeFile,那么我能够initWithContentURL:不会导致任何崩溃。 – greenhouse

1

我有同样的问题,在我的情况下,问题是,我不知道如果电影是一个文件或一个流(URL不能告诉),所以我将它设置为MPMovieSourceTypeUnknown,这也解决了这个问题。它默认具有该值,但如果您开始播放任何一种类型的电影,它会在内部将类型更改为流或文件,如果您现在更改URL而未将正确的类型或手动设置类型重新设置为MPMovieSourceTypeUnknown,则会得到一个例外。

+0

是的,它为我工作,谢谢。 –

相关问题