2012-01-05 10 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

2つのインスタンス(videoPlayer、moviePlayer)を使用する理由がわかりません。クラッシュが表示された場合、「AVPlayerItemは複数のAVPlayerインスタンスに関連付けることはできません」と表示されます。また、メソッド[MPMoviePlayerController moviePlayer]も認識していません。オーディオ再生を削除するには、それらを参照できるいくつかの質問があります。 – Ravin

答えて

0

私は以前と同じクラッシュに会った、と私はすべてのMPMoviePlayerControllerの通知を削除することによってそれを修正し、また両方がそうでなければ、実行する必要があり、注意して(MPMoviePlayerController自身を解放クラッシュはまだ発生します!)再生状態がMPMoviePlaybackStateStoppedになったら私はまだ正確な理由はわかりませんが、私が知っているのは、プレーヤーがMPMoviePlaybackStateStopped状態に継続して入るとクラッシュするので、2回停止しないようにするだけです。

希望すると、これが役立ちます。

関連する問題