![]() |
|
||||||||||
|
|||||||
| Результаты опроса: Вы согласны, что класс Sound в AS3 ГЛЮЧНЫЙ? | |||
| Конечно |
|
4 | 12.90% |
| Думаю "да" |
|
8 | 25.81% |
| Не знаю |
|
8 | 25.81% |
| Думаю "нет" |
|
6 | 19.35% |
| Уверен, что он без глюков |
|
5 | 16.13% |
| Голосовавшие: 31. Вы ещё не голосовали в этом опросе | |||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
Написал плеер для проигрывания mp3-файлов с сервера во Flex Builder 3. Всё отлично, но при перемотке, когда вычисляется позиция на которую нужно перейти и продолжить проигрывание файла, иногда звук либо останавливается либо всё таки перематывается.
Вот функция перемотки: private var isPlaying:Boolean = false; // проигрывается ли сейчас файл или нет
private var pausePos:Number = 0; // позиция последней остановки звука (пауза, конец воспроизведени, перемотка...)
private var snd:Sound; // собственно, сам звуковой поток
private var sndChannel:SoundChannel; // канал звука
private var sndTr:SoundTransform = new SoundTransform(0.8); // громкость звука
/* ... */
private function sndPause():void {
if(isPlaying)
{
pausePos = sndChannel.position;
sndChannel.stop();
isPlaying = false;
}
}
private function seekTo(event:MouseEvent):void {
sndPause();
pausePos = (event.localX/seek_pb.width)*snd.length; // seek_pb:ProgressBar
sndPlayPause();
}
private function sndPlayPause():void {
if(snd != null)
{
if(isPlaying)
{
sndPause();
}
else
{
sndChannel = snd.play(pausePos);
sndChannel.soundTransform = sndTr;
isPlaying = true;
}
}
}
В чем конкретно может быть прикол? Почему так странно работает метод Sound.play(newPos)? Последний раз редактировалось stringer2008; 12.07.2008 в 01:26. Причина: очепятка ;) |
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
Подозрение на частоту: нормально работают файлы с частотой 44kHz и выше.
Щупаю дальше. |
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
А еще, если для объекта типа VideoDisplay свойству playheadTime присвоить позицию, которая будет больше загруженной части, то у него перестают работать такие методы как play(), pause() и stop().
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Написал уже 2 mp3-плеера и ни в одном такого нету.
Кстати, что такое private var sndChannel:sndChannel; ?? |
|
|||||
|
Цитата:
|
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
Кстати, в AIR вроде такой проблемы с воспроизведением звуковых файлов нет.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:15. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| play , sound , перемотка |
| Опции темы | |
| Опции просмотра | |
|
|