Огромный WTF, который, как я думал, был скрыт в создаваемом мной полусложном веб-приложении , но я сократил его до простейшего возможного кода, и он все еще можно воспроизвести в Firefox, Chrome. и Safari, непредсказуемо, но более чем на половину времени.
http://jsfiddle.net/cDpV9/7/
var v = $("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-piano-360.webm' autobuffer='auto' preload autoplay controls></video>");
$("#player").append(v);
- Добавить элемент видео.
- Видео начинает загружаться и воспроизводиться.
- Видео аудио звучит так, как будто оно удвоено.
- Приостановить видимое видео, и одна звуковая дорожка продолжается.
- Удалить элемент видео; Призрачное аудио продолжает играть.
- Удалите кадр, и призрачный звук остановится (хотя однажды в Firefox он продолжал воспроизводиться после закрытия окна и не останавливался до выхода из Firefox).
Вот снимок экрана, который может показывать, что я не совсем сумасшедший: http://www.youtube.com/watch?v=hLYrakKagRY
Кажется, этого не происходит при создании элемента с .html()
вместо .append()
, так что это моя единственная подсказка: http://jsfiddle.net/cDpV9/6/
$("#player").html("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-piano-360.webm' autobuffer='auto' preload autoplay controls></video>");
Я на OS X 10.6.7.
Я думаю, что у меня это есть. Даже создание объекта JQuery без добавления его на страницу приводит к проигрыванию игры-призрака: http://jsfiddle.net/cDpV9/8/
var v = $("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-banjo-360.webm' autobuffer='auto' preload autoplay controls></video>");
Сейчас я могу обойти это, используя .html()
. Я сообщу о проблеме в JQuery.