Метод SetURL объекта QuickTime не определен? - PullRequest
0 голосов
/ 02 октября 2008

У меня есть скрытый встроенный объект QuickTime на моей странице, которым я пытаюсь управлять с помощью JavaScript, но он не работает. Объект выглядит так:

<object id="myPlayer" data="" type="audio/mpeg" pluginspage="http://www.apple.com/quicktime/download" width="0" height="0">
    <param name="autoPlay" value="false" />
    <param name="controller" value="false" />
    <param name="enablejavascript" value="true" />
</object>

В параметре данных ничего нет, потому что во время рендеринга я не знаю URL, который будет загружен. Я установил это так:

var player = document.getElementById("myPlayer");
player.SetURL(url);

Аудио будет позже воспроизведено с:

player.Play();

Firefox 3.0.3 не выдает ошибок в консоли JavaScript, но при вызове Play() воспроизведение не происходит. Safari 3.0.4 выдает следующую ошибку в консоли:

"Value undefined (result of expression player.SetURL) is not object."

Internet Explorer 7.0.5730.11 выдает следующее чрезвычайно полезное сообщение об ошибке:

"Unspecified error."

У меня на компьютере установлена ​​версия QuickTime 7.4. В документации Apple написано, что SetURL() правильно, так почему это не работает?

Ответы [ 3 ]

1 голос
/ 17 января 2009

Попробуйте задать элементу объект ширину и высоту (1 на 1 пиксель) и сделать его видимым в области просмотра при попытке связи с плагином через JavaScript.

Я заметил, что если область плагина не видна на экране, она не реагирует на команды JS.

Это может объяснить, почему это не работает для вас в IE.

Safari и Opera должны работать, но FireFox определенно потребует элемент встраивания в стиле Netscape, и вы действительно должны предоставить оба. Кроме того, когда у вас есть оба, вам нужно выяснить, к какому элементу (объект против встраивания) обращаться в какой браузер.

0 голосов
/ 10 января 2009

Страница, на которую вы ссылались, не содержит атрибута «данные». У них есть EMBED и PARAM в объекте, с атрибутом EMBED 'src', имеющим URL, но я не вижу EMBED в том, что вы опубликовали.

0 голосов
/ 10 января 2009

Я не знаю API QuickTime, но, возможно, стоит попробовать:

player.attributes.getNamedItem('data').value = 'http://yoururlhere';
...