Html5 не удается изменить видео в Safari - PullRequest
1 голос
/ 15 февраля 2012

Я включил видео с html5, и у меня есть меню, которое меняет видео.

Меню хорошо работает в Firefox, Opera и Chrome, но не в Safari.

У меня есть этоHTML-код:

<div id="tele">
    <video id="v" width="254" height="204">
     <source id="ogg" src="/media/joies.ogv" type="video/ogg" /> 
     <source id="mp4" src="/media/joies.mp4" type="video/mp4" />
     <source id="webm" src="/media/joies.webm" type="video/webm" /> 
     <object id="flash" type="application/x-shockwave-flash"
        data="player.swf?file=joies.mp4">
        <param id="flash2" name="movie" value="player.swf?file=joies.mp4" />
    </object> </video>


</div>

<li><a href="#" class="activo"
onClick="changeVideo('/media/joies.ogv','/media/joies.mp4','/media/joies.webm','player.swf?file=joies.mp4','player.swf?file=joies.mp4')">1</a>

И этот Javascript:

function changeVideo(v,x,w,y,z) {

    document.getElementById("ogg").src=v;
    document.getElementById("mp4").src=x;
    document.getElementById("flash").data=y;
    document.getElementById("flash2").value=z;
    document.getElementById("webm").src=w;
    var video = document.getElementById('v');
    video.load();
    video.play();
    }

Для посещения Интернета: http://81.35.152.41:8888/index.php/ca/static/zapping#

Почемуменю для смены видео не запускается в Safari?

Спасибо

С уважением

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

поместите mp4-узел поверх остальных, тогда он может работать. если это не работает, полностью удалите исходные узлы и используйте атрибут src видео-узла. Затем добавьте проверку совместимости кодеков для changeVideo () -> video.canPlayType("video/mp4") (для каждого типа, лучшего в цикле)

в IE9, который исправил проблемы для меня. позже проверил Safari, так что не знаю, есть ли у него такая же проблема.

Я использую эту функцию для тестирования источника:

    var VIDEO = document.getElementById("myVideo");
        function listSource(source,sources) {
            var type,
                ext = source.split('.').pop();
            switch(ext) {
                case "mp4":
                case "m4v": 
                    ext = "mp4";
                    type = "video/mp4";
                break;
                case "webm":
                    type = "video/webm";
                break;
                case "ogv":
                    type = "video/ogg";
                break;
                default:
                    console.log('invalid file extension: '+source);
                    return sources;
            }
            if( !VIDEO.canPlayType(type) ) {
                return sources; // only add video to list if the current browser can actually play it
            }
            sources.push({ src: source, type: type });
            return sources;
        }


    var sources_ok = [];
    var sources = ["http://domain.com/test.mp4", "http://domain.com/test.webm", "http://domain.com/test.ogv"]; // example

    for(var i=0,maxi=sources.length;i<maxi;i++) {
        sources_ok = listSource(sources[i],sources_ok);
    }
0 голосов
/ 21 ноября 2014

Если вы измените источник видео после того, как оно уже загружено, Safari не загрузит видео.Вы должны клонировать видео, удалить оригинал и добавить клонированный контейнер на его место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...