音频播放器在iPhone中播放远程音频文件?

时间:2012-01-05 09:55:44

标签: iphone

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

我的代码:

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'

1 个答案:

答案 0 :(得分:0)

我之前遇到了同样的崩溃,我通过删除所有MPMoviePlayerController通知来修复它,并且还释放了MPMoviePlayerController本身(注意,两者都应该完成,否则崩溃仍然会发生!)一旦回放状态转到MPMoviePlaybackStateStopped 。我仍然不知道确切的原因,只有我知道的是,如果玩家连续进入MPMoviePlaybackStateStopped状态,它将崩溃,所以我只是阻止它停止两次。

希望这会有所帮助。