Как добавить кнопку воспроизведения, остановки … к видео

#iphone #objective-c

#iPhone #objective-c

Вопрос:

я использую этот код для отображения видео в моем приложении

 NSURL *movieUrl = [NSURL fileURLWithPath:
                       [[NSBundle mainBundle] pathForResource:@"myvideoname" 
                                                       ofType:@"mp4"]];

    //create a new instance of MPMoviePlayerController
    MPMoviePlayerController* myMovie=[[MPMoviePlayerController alloc] 
                                      initWithContentURL:movieUrl];

    //disable scaling of our movie
    myMovie.scalingMode = MPMovieScalingModeNone;
    [myMovie.view setFrame: myView.bounds];  // player's frame must match parent's
    [myView addSubview: myMovie.view];

    [[myMovie view] setFrame:[myView bounds]];
    //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]; 
    myMovie.scalingMode = MPMovieScalingModeAspectFill;

    //start the movie (asynchronous method)
    [myMovie play];
    // Do any additional setup after loading the view from its nib.
  

это работает нормально, но я хочу добавить элементы управления (воспроизведение, остановка, управление звуком …)
Как я могу сделать? спасибо

Ответ №1:

Для чего используется ControlStyle?

 myMovie.constrolStyle = MPMovieControlStyleEmbedded;
  

MPMovieControlStyle
Константы, описывающие стиль элементов управления воспроизведением.

 enum {
   MPMovieControlStyleNone,
   MPMovieControlStyleEmbedded,
   MPMovieControlStyleFullscreen,
   MPMovieControlStyleDefault = MPMovieControlStyleFullscreen
};
typedef NSInteger MPMovieControlStyle;
  

Константы

MPMovieControlStyleNone Никакие элементы управления не отображаются. Доступно в
iOS 3.2 и более поздних версиях. Объявлено в
MPMoviePlayerController.h.

MPMovieControlStyleEmbedded
Отображаются элементы управления для встроенного просмотра.
Элементы управления включают в себя
кнопку запуска / паузы, панель очистки и кнопку
для переключения между полноэкранным и
встроенным режимами отображения. Доступно в
iOS 3.2 и более поздних версиях. Объявлено в
MPMoviePlayerController.h.

MPMovieControlStyleFullscreen
Отображаются элементы управления для полноэкранного воспроизведения.
Элементы управления включают в себя кнопку запуска / паузы
, панель очистки, кнопки поиска вперед и
назад, кнопку для
переключения между полноэкранным и
встроенным режимами отображения, кнопку для
переключения режима заливки сторон и
кнопку «Готово». Нажатие кнопки готово приостанавливает видео и выходит из полноэкранного
режима. Доступно в iOS 3.2 и более поздних версиях.
Объявлено в MPMoviePlayerController.h.

MPMovieControlStyleDefault
По умолчанию отображаются полноэкранные элементы управления.
Доступно в iOS 3.2 и более поздних версиях.
Объявлено в MPMoviePlayerController.h.
MPMovieFinishReason

Ответ №2:

Вы должны установить стиль управления, например myMovie.controlStyle = MPMovieControlStyleDefau< , чтобы добавить панель управления.

Комментарии:

1. @Henrik @texmex5 спасибо за ответ. Я добавил MyMovie.ControlStyle = MPMovieControlStyleEmbedded; гайка ничего не меняется. и я не понимаю, куда мне поместить перечисление: (я вставил его в .h, .m у меня всегда возникает ошибка…

2. Вам не нужно добавлять перечисление в ваш заголовочный файл. Единственная строка, которую вам нужно добавить, это MyMovie.ControlStyle = MPMovieControlStyleEmbeded.

Ответ №3:

Определите controlStyle свойство для MPMoviePlayerController объекта.

Константы, описывающие стиль элементов управления воспроизведением.

 enum {
   MPMovieControlStyleNone,
   MPMovieControlStyleEmbedded,
   MPMovieControlStyleFullscreen,
   MPMovieControlStyleDefault = MPMovieControlStyleFullscreen
};
typedef NSInteger MPMovieControlStyle;
  

Подробнее здесь