Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Объединение flash плеера и jquery (https://javascript.ru/forum/jquery/29581-obedinenie-flash-pleera-i-jquery.html)

ArmagedDance 04.07.2012 08:37

Объединение flash плеера и jquery
 
Не могу заставить устанавливать и выдавать текущее значение позиции проигрывания флеш плеера.
Привязал вот такой плагин для работы с объектом flash.
http://jquery.thewikies.com/swfobject/examples

Использую вот такой плеер http://flash-mp3-player.net/players/js/

var Pposition = 10000;
var myFlash = $("#myFlash").flash({swf: 'player_mp3_multi.swf',
bgcolor: "transparent",
FlashVars: {
  mp3: "../bionda.mp3",
  width: 210,
  height: 24,
  autoplay:1,
  loop:1,
  showvolume:1,
  showlist:0,
  loadingcolor:888888,
  sliderovercolor:666666,
  buttonovercolor:888888,
  currentmp3color:"ffffff",
  scrollbarcolor:"eeeeee"
}});

myFlash.flash(function() {
			this.SetVariable("method:setPosition", Pposition);
            alert(Pposition);
		}
);

Несмотря на то, что ошибок согласно консоли ошибок нет, все равно нихрена не работает.
Помогите!

DjDiablo 04.07.2012 11:45

Есть одно предположение.
Ты грузиш флэш здесь $("#myFlash").flash({swf: 'player_mp3_multi.swf',
а затем сразу пыаешся вызвать метод this.SetVariable("method:setPosition", Pposition);

но так как загрузка происходит асинхронно, то вероятно ты пытаешся вызвать метод setPosition у флеша, ещё до того момента как сам флеш загрузился.
Попробуй в порядке эсперемента, отсрочить вызов функции секунд на 5 и посмотрим что получится
setTimeout(function(){
	myFlash.flash(function() {
            this.SetVariable("method:setPosition", Pposition);
            alert(Pposition);
        }
},5000);

ArmagedDance 04.07.2012 12:25

В общем, вроде как работает тот код, что вы написали, только вот не могу переключить позицию по значению.

var Pposition = 20000;
var myFlash = $("#myFlash").flash();

setTimeout(function(){
myFlash.flash(function(){
this.SetVariable("method:setPosition", Pposition);
alert(Pposition);
});},10);

Вот такой код не переключает позицию на 20 000, хотя по логике должен - песня с начала воспроизводится.
Как переключить?

DjDiablo 04.07.2012 12:47

Меня бы на твоём месте в первую очередь интерисовала два вопроса.
1й) как отследить готовность флэш обьекта (событие onLoad - надо полагать)
2й) Как отследить событие готовности самого флэш приложения, (вроде у проигрывателя есть событие onInit)

с другой стороны можно попробывать пойти в обход
для автоматического воспроизведения можно попробывать добавить autoplay=1 в flashvars
вероятно можно аналогично поступить с позицией и громкостью

кстатии для jQuery есть гоовые решения по воспроизведению звука и видео


Часовой пояс GMT +3, время: 05:37.