2013-03-06 3 views
1

Я пытаюсь сделать паузу видео с My Own кнопки в IOS UIView, который имеет youtube.com загружен. Я пытаюсь взаимодействовать с youtube api без везения.Приостановка (html5) Youtube видео на устройстве IOS

Я ищу для ввода своего собственного кода для взаимодействия с игроком (объект swfobject? Это?). Я попытался подключиться к плееру/swfobject без успеха. И просто для того, чтобы еще раз пояснить, я не хочу вставлять видео себя в новый веб-просмотр. (Я знаю, как это сделать. Классный способ сделать это - использовать Tubeplayer plugin).

Так что я хотел бы сделать это:

  1. Вводят паузы функции JavaScript, что я буду называть моего мобильного приложения.
  2. функция тогда будет делать что-то вроде этого:

    var theSwfobject = window.swfobject; //**Find the youtube video object for reuse.** 
    theSwfobject.PauseVideo(); 
    

Поэтому короткий вопрос: Как я могу найти и использовать видео объект YouTube на youtube.com (так что я могу ввести функцию паузы() для вызова из IOS для приостановки видео)?

+0

Вы уверены, что это видео в формате HTML5? Swf, казалось бы, указывает на вспышку. Проверка youtube, видео, загруженное как flash в моем браузере. У них может быть прогрессивное улучшение HTML5, но я не уверен, так как мой браузер поддерживает видео HTML5. Я думаю, вы ищете, как приостановить Flash-видео. – Rich

+0

Если это действительно HTML5-видео, он должен быть элементом

+0

Возможно, это совсем не то, что это не HTML5-видео. Я использую версию iOS 5.1, у которой все еще были «переопределенные флеш-ролики, потому что они опасны и показывают их в яблочном плеере». Теперь в новой версии 6.0 и выше, Apple все еще запутывает, но не показывает видео, поэтому требуется видео hmtl5. Новый SWF 2.0 поддерживает это. Он узнает, какой формат поддерживается (по умолчанию - flash) и выписывает плеер. Я ожидал html5, но, возможно, это было неправильно. Теперь я обновляю iOS, и если это будет работать, я буду знать, если вы правы. – Sturla

ответ

2

Основываясь на вашем последнем комментарии, я хотел бы что-то сделать в JavaScript. Вот небольшой API, который я бы установил для управления элементом видео в этом экземпляре. Так как элемент видео, кажется, не имеет идентификатор, используемый getElementsByTagName:

var myVideoController = {}; 

myVideoController = (function() { 

    "use strict";  

    var muted = false; 

    var module = { 

    //Grabs video element by tag name and assumes there would only be one if it exists 
    getVideoElement : function() { 
     var videoElements = document.getElementsByTagName('video'); 
     var videoElement = null; 

     if(videoElements[0]) { 
     videoElement = videoElements[0]; 
     } 

     return videoElement; 
    }, 

    /** 
    * Wrapper to make interacting with html5 video element functions easier. 
    * @param functionName - name of function to invoke on the video element 
    * @params - any additional parameters will be fed as arguments to the functionName function 
    */ 
    callVideoFunction : function(functionName) { 
     var videoElement = module.getVideoElement(); 
     var functionArguments = []; 

     if(videoElement !== null) { 
     functionArguments = module.getSubArguments(arguments, 1); 

     if(functionArguments.length > 0) { 
      videoElement[functionName](functionArguments); 
     } else { 
      videoElement[functionName](); 
     } 
     } 
    }, 

    setVideoProperty : function(propertyName, propertyValue) { 
     var videoElement = module.getVideoElement(); 

     if(videoElement !== null) { 
     videoElement[propertyName] = propertyValue; 
     } 
    }, 

    /* Helper method to grab array of function arguments for callVideoFunction 
     since the arguments object in functions looks like an array but isn't 
     so .shift() is not defined */ 
    getSubArguments : function (args, indexFrom) { 

     var subArguments = []; 

     for(var i = indexFrom; i < args.length; i++) { 
     subArguments.push(args[i]); 
     } 

     return subArguments; 
    }, 

    //Pause the video 
    pauseVideo : function() { 
     module.callVideoFunction('pause'); 
    }, 

    //Play the video 
    playVideo : function() { 
     module.callVideoFunction('play'); 
    }, 

    //Mute/Unmute video 
    flipVideoMute : function() { 
     muted = !muted; 
     module.setVideoProperty('muted', muted); 
    } 
    }; 

    return module; 

})(); 

я тестировал его на http://www.w3.org/2010/05/video/mediaevents.html где w3 создали видео HTML5 с обратной связью по использованию API. Я скопировал вышеуказанный код в консоль javascript и выполнил команды следующим образом:

//Start video 
myVideoController.playVideo(); 

//Pause video 
myVideoController.pauseVideo(); 

//Restart video 
myVideoController.playVideo(); 

//Mute video 
myVideoController.flipVideoMute(); 

//Unmute video 
myVideoController.flipVideoMute(); 
Смежные вопросы