Основываясь на вашем последнем комментарии, я хотел бы что-то сделать в 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();
Вы уверены, что это видео в формате HTML5? Swf, казалось бы, указывает на вспышку. Проверка youtube, видео, загруженное как flash в моем браузере. У них может быть прогрессивное улучшение HTML5, но я не уверен, так как мой браузер поддерживает видео HTML5. Я думаю, вы ищете, как приостановить Flash-видео. – Rich
Если это действительно HTML5-видео, он должен быть элементом
Возможно, это совсем не то, что это не HTML5-видео. Я использую версию iOS 5.1, у которой все еще были «переопределенные флеш-ролики, потому что они опасны и показывают их в яблочном плеере». Теперь в новой версии 6.0 и выше, Apple все еще запутывает, но не показывает видео, поэтому требуется видео hmtl5. Новый SWF 2.0 поддерживает это. Он узнает, какой формат поддерживается (по умолчанию - flash) и выписывает плеер. Я ожидал html5, но, возможно, это было неправильно. Теперь я обновляю iOS, и если это будет работать, я буду знать, если вы правы. – Sturla