私のアプリケーションでは、を使用してビデオを再生する必要がありますMPMoviePlyerController
。1920x1080 の解像度では問題なく動作しますが、3840x2160 などの高解像度ではビデオが再生されず_itemFailedToPlayToEnd
、コンソールにエラーが表示されます。シミュレーターでは非常にうまく機能しますが、問題はデバイスでのみ発生します。私のアプリケーションは 7.0 以降のバージョンをサポートしています。
多くのスタック オーバーフローの回答を検索しましたが、どれもうまくいきませんでした。
再生できない動画の解像度は 3840x2160 です。
これは私がビデオを再生するために使用したコードです
NSURL *url = [NSURL URLWithString:videoDetails.media_urlString];
self.moviePlayer = [[MPMoviePlayerController alloc]
initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:self.moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayLoadStateChangeNotification:)
name:MPMoviePlayerLoadStateDidChangeNotification
object:self.moviePlayer];
[self.moviePlayer setControlStyle:MPMovieControlStyleNone];
self.moviePlayer.view.frame = CGRectMake(self.frame.origin.x, 0, self.frame.size.width, self.frame.size.height); //Set the size
[self.moviePlayer setFullscreen:NO];`enter code here`
[self.moviePlayer setShouldAutoplay:YES];
[self addSubview:self.moviePlayer.view];//Show the view
[self.moviePlayer play];
私がテストしたデバイスは、iPad3、iPhone5s、iPhone5、iPhone4s です。