Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.11.2007, 14:33
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 1  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
По умолчанию Проблема с перемткой трэка в потоковом аудио

Делаю муз. плэер на сайт.
Музыка берется из потока по определенной ссылке.
Зделал перемотку по клику на полосе проигрывания. Во Флеше (когда запускаем из под Флеша) все работает отлично - все перематыватся, все правильно отображается. Но из под браузера(IE, FF) перемотка работет неправильно: при клике на полосе вначале (0-30%) трэк начинает проигрываться где-то с середины, при клике на середине полосы или дальше вызываеться событие SOUND_COMPLETE, т.е. песня закончилась.

Думал может выкидывает из буфера то что уже проиграло, но тестировал перематывать на те места, которые еще не проигрывались и всеравно этот глюк!

Может кто сталкивался с такой проблемой? Как ее можно решыть?
Или это очередной баг...

Вот на всякий случа укороченый код того что есть.
Код:
var sound:Sound;
var channel:SoundChannel;

function load():void
{
	sound = new Sound();
	var req:URLRequest = new URLRequest(url);
	var context:SoundLoaderContext = new SoundLoaderContext(bufferTime, true);
	sound.load(req, context);
}

function play(pos:int = 0):void
{
	channel = sound.play(pos, 0, new SoundTransform(volume));
	channel.addEventListener(Event.SOUND_COMPLETE, onPlayComplete);
}

function stop():void
{
	if (this.isPlaying())
	{
		pausePosition = channel.position;
		channel.stop();
		channel.removeEventListener(Event.SOUND_COMPLETE, onPlayComplete);
	}
}
Перемотка:
Код:
stop();
play(myPosition);


Последний раз редактировалось 2morrowMan; 25.11.2007 в 14:36.
Старый 26.11.2007, 02:00
grunerasta вне форума Посмотреть профиль Отправить личное сообщение для grunerasta Найти все сообщения от grunerasta
  № 2  
Ответить с цитированием
grunerasta
 
Аватар для grunerasta

Регистрация: Mar 2007
Адрес: Таиланд
Сообщений: 121
Отправить сообщение для grunerasta с помощью ICQ
Есть такой прикол, в sound.play() должно попасть значение в секундах, а pos у тебя в милисекундах - вот и получается что работает неправильно, дели pos на 1000

Старый 26.11.2007, 02:29
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 3  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Цитата:
Сообщение от grunerasta
Есть такой прикол, в sound.play() должно попасть значение в секундах, а pos у тебя в милисекундах - вот и получается что работает неправильно, дели pos на 1000
Да нет, там все в милисекундах.

Есть вариант что это у клиента просто серверный скрипт, который отдает аудио, написан криво...

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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