2012-01-05 226 views
0

我需要在iPhone中从网站播放音频文件(.wav)。我正在使用MPMoviePlayerViewController来播放音频播放器。有时候应用程序正在崩溃。音频播放器在iPhone中播放远程音频文件?

我的代码:

NSURL * videoURL = [NSURL URLWithString:appDelegate.selectedQuestion.GraphicsUrl];

 videoPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL]; 
     [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0]; 
     MPMoviePlayerController *moviePlayer = [videoPlayer moviePlayer]; 

     [moviePlayer setScalingMode:MPMovieScalingModeAspectFit]; 
     [videoPlayer.view setFrame: videoView.bounds]; 
     [moviePlayer.view setFrame:videoPlayer.view.bounds]; 
     [moviePlayer.backgroundView setFrame:videoPlayer.view.bounds]; 
     [videoView addSubview:videoPlayer.view]; 

     [moviePlayer setShouldAutoplay:NO]; 
     [moviePlayer setFullscreen:YES]; 
     [moviePlayer setFullscreen:NO]; 
     [moviePlayer setCurrentPlaybackTime:(NSTimeInterval)1]; 
     [moviePlayer setInitialPlaybackTime:(NSTimeInterval)1]; 
     [moviePlayer setControlStyle:MPMovieControlStyleDefault]; 
     [moviePlayer setCurrentPlaybackTime:(NSTimeInterval)-1]; 

例外:

mediaserverd (sandbox) 
Dec 29 23:48:43 unknown mediaserverd[3132] <Error>: 23:48:43.312834 com.apple.AVConference: /SourceCache/GameKitServices/GameKitServices-344.3/AVConference.subproj/Sources/AVConferenceServer.m:1867: AVConferenceServerStart 
Dec 29 23:48:43 unknown SMILE[2823] <Warning>: _serverConnectionDiedNotification. Info -- notification=Error Domain=AVFoundationErrorDomain Code=-11819 "Cannot Complete Action" UserInfo=0x7f7c660 {NSLocalizedRecoverySuggestion=Try again later., NSLocalizedDescription=Cannot Complete Action}, AVPlayer = <MPQueuePlayer: 0xac97410>, currentTime = 8.78 
Dec 29 23:48:43 unknown SMILE[2823] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'An AVPlayerItem cannot be associated with more than one instance of AVPlayer' 
+0

我不知道你为什么使用两个实例(videoPlayer,moviePlayer)?如果您看到崩溃,则显示:'一个AVPlayerItem不能与多个AVPlayer实例关联'。另外,我不知道方法 - [MPMoviePlayerController moviePlayer]。要删除音频播放,您可以参考几个问题。 – Ravin 2012-01-05 11:31:51

回答

0

我以前遇到死机一样,我通过删除所有的MPMoviePlayerController通知固定它也释放出的MPMoviePlayerController本身(注意,这两个应该做的,否则崩溃仍会发生!)一旦播放状态转到MPMoviePlaybackStateStopped。我仍然不知道确切的原因,只有我知道的是,如果玩家不断进入MPMoviePlaybackStateStopped状态,它会崩溃,所以我只是阻止它停止两次。

希望这会有所帮助。