Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Проблема проигрывания звука в MSIE (http://www.flasher.ru/forum/showthread.php?t=89991)

Petrovich_Z 28.12.2006 16:52

Проблема проигрывания звука в MSIE
 
Добрый день,
требуется воспроизводить загружаемый звук. Звуки грузятся с сайта. В самом Flash'е все работает отлично, нажимаю кнопку, файл загружается (music.load('http://site.ru/getsound.mp3?a=12345'), false), стабатывает onLoad, проверяю music.duration=20365, делаю music.start() и музыка играет. Как только начинаю смотреть флешку в msie - как будто все точно также, вот только music.duration=0. Чтобы услышать звук нудно снова нажать на кнопку. В Firefox все работает нормально (не важно где находится флешка - локально или на сайте). В чем подвох. Не писать же "пользователи MSIE нажимайте на кнопку 2 раза". Самое интересное, что закешированные файлы даже в MSIE играют с первой попытки. Не понимаю почему происходит onLoad(true). getSound.mp3 на самом деле php, но там вроде проблем нет.

silin 28.12.2006 17:22

то что в IE бывает что криво работают события загрузки не новость,
как вариант можно и продублировать (отследить в onEnterFarme или интервальной функции)
а у тебя интересно какой такой music.load , music он же Sound, нет у него такого метода.. или он MovieClip ? тогда при чем music.start(), расшифруй тут что происходит..

FourSide 28.12.2006 18:10

У него двойной клик в IE на мувике происходит :) Ничего нового, можно использовать SWFObject().

Petrovich_Z 28.12.2006 18:24

Код:

var music:Sound = new Sound();

music.onLoad=function(success:Boolean){
 if(success){
        info.text=music.duration; //info - текстовое поле для отладки в IE
        music.start();
 }
};

// на кнопке висит:
on(release){
  music.loadSound("http://www.site.ru/getsound.mp3?a=123654", false);
}

вот такой у меня был код.

модернизировал примерно так:
Код:

var music:Sound = new Sound();

music.onLoad=function(success:Boolean){
 if(success){
    if(music.duration>0){
        info.text=music.duration; //info - текстовое поле для отладки в IE
        music.start();
    }else{
        music.loadSound("http://www.site.ru/getsound.mp3?a=123654", false);
    }
 }
};

так он у меня ушел в бесконечный цикл.

silin 28.12.2006 18:46

так и должен..
в качестве эксперимента, такой вариант замены родному onLoad:
Код:

var music=new Sound();
var intervalID;
but.onPress=function(){
        music.loadSound('file.mp3', false);
        intervalID=setInterval(watchLoad,10);
}
function watchLoad(){
        if(music.duration){
                clearInterval(intervalID);
                music.start();
        }
}


Petrovich_Z 28.12.2006 18:57

Попробовал, результан оказался и ожидаемым и непредсказуемым одновременно: естественно с первого клика ничего не произошло - тишина, зато при втором клике случилось что-то странное - заиграл звук, но не один, а два одинаковых с небольшой задержкой. Как будто с эхом.

silin 28.12.2006 19:03

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

silin 28.12.2006 19:18

Цитата:

Сообщение от FourSide
У него двойной клик в IE на мувике происходит :) Ничего нового, можно использовать SWFObject().

а что это, почему
FourSide, скажи подробнее: может в этом и дело (двойной звук)
зы: потому что если б интервал не очистился был бы не двойной, а вообще кошмарный звук..

FourSide 28.12.2006 19:24

Цитата:

Сообщение от Petrovich_Z
...Чтобы услышать звук нудно снова нажать на кнопку. В Firefox все работает нормально (не важно где находится флешка - локально или на сайте). В чем подвох. Не писать же "пользователи MSIE нажимайте на кнопку 2 раза"...

Я может быть неправильно понял автора, но мне показалось, что кнопка "Старт" для проигрывания музыки не нажимается в IE. Т.е. она нажимается со второго раза, в отличие от остальных браузеров, что и дало мне мысль, что мешает активация ActiveX компонента в IE.

Для Petrovich_Z - попробуйте после загрузки страницы с мувиком в IE просто навести указатель мыши на ваш мувик. Всплывающая подсказка случайно не такая будет: "Click to activate and use this control"?

Petrovich_Z 28.12.2006 21:14

я подготовлю пример и выложу чуть позже, только ребенка спать уложу.
Кнопка нажимается нормально. Вообще результат можно посмотреть тут:
http://www.ringbacktones.ru


Часовой пояс GMT +4, время: 13:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.