Удаление скруббера и метки времени из видео YouTube, встроенного в UIWebView - PullRequest
1 голос
/ 29 марта 2012

У меня есть YouTubeView в приложении, которое я создаю, и я пытаюсь отключить некоторые из отображаемых элементов управления видео, я видел, как другое приложение делает это, где оно отображает только значки «Воспроизведение / Пауза» и «Полноэкранный режим».Некоторые видео, которые я снимаю, довольно маленькие (200x150), поэтому скруббер бесполезен, а время фактически перекрывает себя.

Используемая мной функция:

- (YouTubeView *)initWithStringAsYouTubeId:(NSString *)idString frame:(CGRect)frame;
{
    if (self = [super init]) 
    {
        self.frame = frame;
        self.delegate = self;

        // HTML to embed YouTube video
        NSString *embedHTML = @"\
        <html><head>\
        <style type=\"text/css\">\
        body {\
        background-color: transparent;\
        color: transparent;\
        }\
        </style>\
        </head><body style=\"margin:0\">\
        <embed id=\"yt\" src=\"http://www.youtube.com/v/%@\" type=\"application/x-shockwave-flash\" \
        width=\"%0.0f\" height=\"%0.0f\"></embed>\
        </body></html>";

        // Populate HTML with the URL and requested frame size
        NSLog(@"%f", frame.size.height);
        NSString *html = [NSString stringWithFormat:embedHTML, idString, frame.size.width, (frame.size.height*-1.0f)];

        // Load the html into the webview
        [self loadHTMLString:html baseURL:nil];
    }
    return self;  
}

Он загружаети играет нормально, но я просто хочу отключить скруббер и раз, я пытался? управления = 0 без удачи.

Ура, Дин

Ответы [ 2 ]

1 голос
/ 28 июля 2012

Чтобы иметь возможность скрыть скруббер и другие элементы управления, удалите тег <embed> и замените его на эквивалент <iframe>, например так (я настроил его, используя параметры / атрибуты из вашего примера кода):

<iframe id=\"yt\" type=\"text/html\" src=\"http://www.youtube.com/embed/%@?controls=0\" width=\"%0.0f\" height=\"%0.0f\" frameborder=\"0\"></iframe>

'controls=0' используется с <iframe>, чтобы скрыть элементы управления для вас.

В моем кратком опыте со встроенным видео в iOS кажется, что решение одной проблемы часто вызывает горе с чем-то другим, что ранее работало нормально. Показательный пример: приведенный выше пример скрывает элементы управления, но накладывает заголовок видео в левом верхнем углу UIWebView. Решение состоит в том, чтобы использовать это для списка параметров вашего видео: '? Controls = 0 & showinfo = 0'

Чтобы увидеть совок по параметру 'showinfo' и другим, посмотрите документы по адресу: https://developers.google.com/youtube/player_parameters#Parameters Не все в параметрах документов работает в iOS <iframe>, но поиграйтесь с некоторыми из них и Вы можете найти что-то полезное.

Для чего бы это ни стоило (и это может быть очевидно для опытных веб-программистов, а я нет), вам не нужно присваивать атрибуту 'id' значение 'yt', но в большинстве случаев я видел Является ли это; 'yt' не является магическим значением, вы можете установить идентификатор так, чтобы он имел для вас смысл.

0 голосов
/ 29 марта 2012

Есть ли причина, по которой вы не используете MPMoviePlayerController?

Используя MPMoviePlayerController, вы просто создадите UIView в своем кончике, размер которого вы хотите увеличить.Затем выделите / инициализируйте игрока и установите его фрейм в качестве фрейма вида.Использование MPMoviePlayerController дает вам доступ к свойству, чтобы показать / скрыть элементы управления.Кроме того, вы получаете все замечательные методы делегата, которые сообщают вам, когда видео останавливается, переходят ли пользователи в полноэкранный режим или нет, и т. Д.

...