0

iPad アプリケーションからサーバーにアップロードされたビデオを再生したいのですが、画面が読み込まれるとエラーが発生します。

AVPlayerItem は、AVPlayer の複数のインスタンスに関連付けることはできません

次のコードを使用しています。

    -(void)playVideo{




     NSURL *url = [NSURL URLWithString:@"http://celeritas.com.pk/emrapp/test.mp4"];

MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlaybackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:mp];    

mp.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

[self presentMoviePlayerViewControllerAnimated:mp];
[mp release];


NSLog(@"Successfully playing thanks");
     }


   -(void)playbackFinishedCallback:(NSNotification *)notification{

MPMoviePlayerController *movie = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
                                                name:MPMoviePlayerPlaybackDidFinishNotification
                                              object:movie];
[movie release];

    }
4

4 に答える 4

1

URL が間違っている可能性があります。動画の URL リンクにアクセスできることを再確認してください。次に、ネットワーク ファイアウォールを確認してください。これも問題の原因となる可能性があります。

代わりに変更できる微調整:

mp.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

使用する:

mp.moviePlayer.movieSourceType = MPMovieSourceTypeUnknown;
于 2013-03-07T12:57:15.537 に答える
1

http://celeritas.com.pk/emrapp/test.mp4 URL が間違っているようです...

要求された URL /emrapp/test.mp4 がこのサーバーで見つかりませんでした。

どんな方法でもこれは機能します

.h

 MPMoviePlayerViewController * plyr;
 NSURL * url;


@property (nonatomic,retain) MPMoviePlayerViewController *plyr;
@property (nonatomic,retain) NSURL *url;

.m

@synthesize plyr ;
@synthesize url;

     url = [NSURL URLWithString:@"valid url"];          
    plyr = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
于 2012-08-16T08:11:01.153 に答える
0

このコードを試してください

    -(IBAction)playMovie:(id)sender  
    {  

      NSURL  *fileURL =  [NSURL URLWithString:@"http://www.youtube.com/watch?v=3Qjh56woQMw"];  

     MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc]         initWithContentURL:fileURL];  

    [[NSNotificationCenter defaultCenter] addObserver:self  
                        selector:@selector(moviePlaybackComplete:)  
                                        name:MPMoviePlayerPlaybackDidFinishNotification  
                                       object:moviePlayerController];  

[self.view addSubview:moviePlayerController.view];  
moviePlayerController.fullscreen = YES;  
[moviePlayerController play];  
  } 

    - (void)moviePlaybackComplete:(NSNotification *)notification  
    {  
    MPMoviePlayerController *moviePlayerController = [notification object];  
   [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotificationobject:moviePlayerController];
    [moviePlayerController.view removeFromSuperview];  
    [moviePlayerController release];  
}  
于 2012-08-16T07:51:15.817 に答える
0

これを試して

MPMoviePlayerViewController *mp;のように .h に MPMoviePlayerViewController のオブジェクトを作成します 。

#import<MediaPlayer/MediaPlayer.h>
mp = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:url]];

[[mp moviePlayer] prepareToPlay];
[[mp moviePlayer] setUseApplicationAudioSession:NO];
[[mp moviePlayer] setShouldAutoplay:YES];
[[mp moviePlayer] setControlStyle:2];
[[mp moviePlayer] setRepeatMode:MPMovieRepeatModeOne];
[self presentMoviePlayerViewControllerAnimated:mp];
于 2012-08-16T07:42:35.573 に答える