Автозапуск MediaElementPlayer
Я хочу, чтобы при загрузке страницы веб-сайта автоматически воспроизводилось видео.
я ссылался на jquery.js, mediaelementplayer.js и mediaelementplayar.минута.css на моей странице и добавлен тег video.
Я пробовал так много способов, например autoplay = true
и использовать код JavaScript, но я не мог заставить его работать.
Я использую BlogEngine.Net 2.0.
Как я могу это сделать?
11 ответов
это ошибка в MediaElementJS, автозапуск работает для native и silverlight, но нуждается в небольшой помощи со вспышкой.
вы можете слушать canPlay событие и начать играть, как только flash player будет готов.
setTimeout трюки могут потерпеть неудачу в условиях гонки.
$('#playerid').mediaelementplayer({
plugins: ['flash', 'silverlight'],
success: function(mediaElement, domObject) {
if (mediaElement.pluginType == 'flash') {
mediaElement.addEventListener('canplay', function() {
// Player is ready
mediaElement.play();
}, false);
}
},
error: function() {
alert('Error setting media!');
}
});
вы можете добавить до <video>
тег, как показано ниже:
<video width="100%" height="auto" poster="some_image.jpg" controls="controls"
autoplay="true">
<source type="video/mp4" src="myvideo.mp4" />
<source type="video/webm" src="myvideo.webm" />
<source type="video/ogg" src="myvideo.ogv" />
<object width="320" height="240" type="application/x-shockwave-flash" data="flashmediaelement.swf">
<param name="movie" value="flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=myvideo.mp4" />
<img src="myvideo.jpg" width="320" height="240" title="No video playback capabilities" />
</object>
</video>
, чтобы воспроизвести его на всех браузерах/устройствах, вы можете использовать jQuery для ссылки на объект и называем его play()
метод.
<script>
var player = new MediaElementPlayer('#id-of-player',/* Options */);
player.play();
</script>
для получения дополнительной информации, вы можете проверить здесь.
Это может быть полезно.
$('audio,video').mediaelementplayer({
success: function(player, node) {
$('.mejs-overlay-button').trigger('click');
}
});
// works here (tested with MediaElements.js 2.1.9)
$(document).ready(function () {
$('video,audio').mediaelementplayer().load();
});
var player = new MediaElementPlayer('video', {
startVolume: 0.8,
features: ['playpause','progress'],
autoplay: true,
audioWidth: 250,
audioHeight: 40
}
);
player.play();
просто создайте свой собственный объект и запустите его через play ();
хотя предложение user932056 не совсем сработало для меня, я использовал общую идею в верхней части моей страницы, которая, наконец, сработала:
<script type="text/javascript">
$(document).ready(function() {
$("div.mejs-container .mejs-button").trigger('click');
});
</script>
вот код, который я написал и работает для меня в HTML5 Видео случаях и для flash player тоже;
$('video,audio').mediaelementplayer({
mode: 'auto_plugin',
defaultVideoWidth: 480,
defaultVideoHeight: 360,
success: function (me) {
whenPlayerReadyToPlay(me, function () {
me.play();
})
}
});
function whenVideoReadyToPlay(me, callback) {
if (me.pluginType !== 'flash') {
me.addEventListener('loadstart', function (e) {
callback();
}, false);
return;
}
if (me.attributes.preload === 'none') {
$(me.pluginElement).ready(function (e) {
callback();
});
}
else {
me.addEventListener('canplay', function (e) {
callback();
}, false);
}
}
вот код:
$(document).ready(function () {
$('video,audio').mediaelementplayer({ defaultVideoWidth: 480, defaultVideoHeight: 360 });
setTimeout('eventClickTrigger()', 1000);
});
function eventClickTrigger() {
$('.mep-overlay').trigger('click');
}
просто, но заняло у меня неделю
вот самый простой способ я знаю. Я не уверен, что это то, что вы ищете, но если мое понимание вашего вопроса правильное, это сработало для меня. Я использую MediaElement 2.9.4.
<script>
MediaElement('player1', {success: function(me) {
me.play();
}});
</script>
или вы могли бы поставить автозапуск и/или preload="auto"
до <video>
тег, на который ссылается jQuery выше.