Я настроил функцию для приостановки звука в mp3-плеере при каждом нажатии определенных вещей на странице, используя ExternalInterface, но у меня проблема в IE.
Настройка такова: у меня есть страница с видео, которая вызывает список видео YouTube, используя RSS. Самое последнее видео отображается на странице в виде div, который называется «display». Затем все остальные видео в ленте отображаются в виде миниатюр и ссылок ... Если вы щелкнете по одному из них, то основное видео на дисплее будет заменено, и оно начнет воспроизводиться. Все это прекрасно работает.
Я хочу, чтобы mp3-плеер на странице приостанавливал музыку при каждом запуске видео.
Функция ExternalInterface работает правильно. При нажатии на одну из ССЫЛК mp3-плеер останавливается, и начинается воспроизведение видео и т. Д.
Проблема в том, что я также хочу, чтобы он останавливался при нажатии на ОСНОВНОЕ видео. Очевидно, что это внешнее видео, загруженное с YouTube, я не могу получить доступ к FLA, чтобы добавить собственный код ExternalAccess.
Я попытался добавить идентификатор к видеообъекту, а затем использовать его в качестве селектора в jQuery для вызова функции stopMovie ... нет. Я пытался добавить к нему класс, а затем вызывать функцию stopMovie при щелчке по классу. Я попытался поместить функцию щелчка в div, в который загружается видео ... ничего не работает. Если я удаляю основное видео и просто имею пустой div, затем нажимаю div, mp3-плеер останавливается ... но если я загружаю видео в div и нажимаю на него, ничего не происходит (в IE ... он работает в FF).
Очевидно, что jQuery не получает сообщение о том, что на видео щелкнули. Любые предложения или обходные пути?
Actionscript:
import flash.external.ExternalInterface;
ExternalInterface.addCallback("stopMovie", pauseSound);
function pauseSound(str:String):void {
if (str == "stop") {
if (my_channel) {
song_position = my_channel.position;
my_channel.stop();
song_paused=true;
}
}
}
Код jQuery:
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
function stopMovie() {
getFlashMovie('audio').stopMovie("stop");
}
// показаны все методы, которые я пробовал //
$('#video_player').live("click", function(){
stopMovie();
});
$('.stopper').live("click", function(){
stopMovie();
});
$('#curVideo').live("click", function(){
stopMovie();
});
$('#display object').live("click", function(){
stopMovie();
});
HTML:
<div id="video_player">
<div id="display">
(some PHP code here to call the feed)
<object id="curVideo" class="stopper" width="410" height="332"><param name="movie" value="<?php echo $videolink; ?>"></param><param name="allowFullScreen" value="true"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="<?php echo $videolink; ?>" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="410" height="332"></embed></object>
</div>
</div>