#objective-c #cocoa-touch #ios #mpmovieplayercontroller
#objective-c #cocoa-touch #iOS #mpmovieplayercontroller
Вопрос:
Я хочу воспроизвести видео в своем приложении для iPhone. Я использовал этот код:
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *movieUrl = [NSURL fileURLWithPath:
[[NSBundle mainBundle] pathForResource:@"Myvideo"
ofType:@"mp4"]];
//create a new instance of MPMoviePlayerController
MPMoviePlayerController* myMovie=[[MPMoviePlayerController alloc]
initWithContentURL:movieUrl];
//disable scaling of our movie
myMovie.scalingMode = MPMovieScalingModeNone;
//don't show any controls
// myMovie.movieControlMode = MPMovieControlModeHidden;
//you can specify at which time the movie should
//start playing (default is 0.0)
myMovie.initialPlaybackTime = 2.0;
//register a callback method which will be called
//after the movie finished
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieFinished:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:myMovie];
//start the movie (asynchronous method)
[myMovie play];
// Do any additional setup after loading the view from its nib.
}
С этим кодом работает только звук. Кто-нибудь может мне помочь, пожалуйста?
Ответ №1:
Вам нужно выделить кадр для вашего фильма и добавить его в просмотр. Смотрите здесь.
Таким образом, вы можете добавить:
[myMoview.view setFrame: self.view.bounds]; // player's frame must match parent's
[self.view addSubview:myMovie.view];
Комментарии:
1. Спасибо, но я не понимаю, что такое MyView?
2. Я привел это в виде фрагмента. это представление вашего ViewController. Я обновлю свой ответ.
3. @Josh Могу ли я добавить элементы управления? воспроизведение, остановка … ?
Ответ №2:
Технические вопросы и ответы Apple 1240:
MPMoviePlayerController воспроизводит аудио из фильма, но не видео
Вопрос: Я могу успешно воспроизводить фильмы с помощью
MPMoviePlayerController
iOS 3.1.3. Когда я запускаю этот же код на iPad и на iPhone с iOS 4, я слышу звук фильма, но видео больше не отображается. Что происходит?A: Начиная с iPhone iOS 3.2, вызов
-play:
метода по-прежнему запускает воспроизведение фильма, но это не гарантирует, что фильм виден. Чтобы отобразить фильм, вы должны получить новое свойство view из вашегоMPMoviePlayerController
объекта и добавить это представление в свою иерархию представлений. Вот фрагмент кода:Листинг 1 Как добавить свойство просмотра MPMoviePlayerController в вашу иерархию просмотра для воспроизведения фильма.
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[[player view] setFrame:[myView bounds]]; // size to fit parent view exactly
[myView addSubview:[player view]];
[player play];
Смотрите Важный совет по переносу для использования платформы Media Player и ссылку на класс MPMoviePlayerController для получения дополнительной информации.