0

私はiPhoneでビデオアプリを使用しています。ユーザーがボタンを押すと、2 番目のビューにつながり、そこから URL からビデオを再生しています。

しかし、ユーザーがそのビューから戻ると、動画が再生されていないことがわかります。

以下の2行が連続して表示されます

     [MPAVController] Autoplay: Likely to keep up or full buffer: 0
     [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up.

これが私のコードです

  - (void)viewDidLoad
  {
[super viewDidLoad];


 self.moviePlayerController = [[MPMoviePlayerController alloc] init];
[self.moviePlayerController prepareToPlay];
self.moviePlayerController.shouldAutoplay = YES;
[[self.moviePlayerController view] setFrame:CGRectMake(-30, 72, 360,140)];


[[self view] addSubview: [self.moviePlayerController view]];


  NSString *strng = [NSString stringWithFormat:@"http://quickemee_videos.s3.amazonaws.com/videoStream_1352395870143_616.mp4"];

NSLog(@"strng %@",strng);
NSURL * adurl = [NSURL URLWithString:strng];

 [self playVideo:adurl];

 }

. . . .

 -(IBAction)back:(id)sender{


 [moviePlayerController stop];
[self.navigationController popViewControllerAnimated:YES];

   }  
4

3 に答える 3

2

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

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video_name" ofType:@"m4v"]];

    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];

    [moviePlayer prepareToPlay];
    moviePlayer.view.frame = self.view.bounds;
    [self.view addSubview:moviePlayer.view];
    [moviePlayer play];
    [moviePlayer setFullscreen:FALSE];
// if you want no control.
    [moviePlayer setControlStyle:MPMovieControlStyleNone];        
于 2013-01-30T15:09:33.550 に答える
1

まずは電話してみてください[self prepareToPlay]

アップルは次のように述べています。

play メソッドを呼び出したときにムービー プレーヤーがまだ再生の準備ができていない場合、そのメソッドは自動的にこのメソッドを呼び出します。ただし、再生の遅延を最小限に抑えるには、play を呼び出す前にこのメソッドを呼び出します。

アップデート:

ファイルが使用可能であることを確認してください。ブラウザでアクセスできません。

于 2013-01-30T13:11:46.430 に答える
1

viewDidLoad一度だけ呼び出されます。したがって、viewController をポップしてからそれに戻ると、viewDidLoad再度呼び出されることはありません。だから実装self.moviePlayerController = [[MPMoviePlayerController alloc] init];してみてください- (void)viewWillAppear:(BOOL)animated

于 2013-01-30T13:16:12.010 に答える