PDA

Просмотр полной версии : Проигрывание .wav файлов


Geqsogen
01.06.2009, 14:46
Столкнулся с проблемой проигрывания .wav файлов на сайте, т. е. просто не нашел в инете такие плееры. Сразу говорю - НУЖНО проигрывать именно .wav - нет возможности конвертировать в .mp3 и все такое (сайт в локале). Так вот - может кто нить помочь? Желательно чтоб была полоса прокрутки и громкость... Дайте хотяб кусок кода - может дальше сам разберусь. (Хотя желательно готовый вариант предпочтительней)

zurkis
01.06.2009, 14:49
http://etcs.ru/blog/as3/wav_player/

VVall
01.06.2009, 14:51
.wav - это контейнер, внутри может быть что угодно. Если нужно проигрывать несжатый PCM, то 10-ый плеер штатно имеет возможность проигрывания программно генерируемого звука.

Geqsogen
01.06.2009, 15:42
http://etcs.ru/blog/as3/wav_player/
Этот я видел - вот еслиб оттуда знать что выковырять - а то кода 600 килобайт и из них большая часть на график ушло!! я то далеко не очень программирую на экшен скрипте :(
мож подскажет что нужно выковыривать?

iNils
01.06.2009, 15:43
На as1/2 проиграть wav не получится.

Geqsogen
01.06.2009, 15:52
.wav - это контейнер, внутри может быть что угодно. Если нужно проигрывать несжатый PCM, то 10-ый плеер штатно имеет возможность проигрывания программно генерируемого звука.
Сейчас начал разбираться, что из себя представляют эти .wav файлы - оказывается
18 кбит/сек
8 000 Hz
MPEG Layer-3
Stereo

хм... и с чем это есть?

VVall
01.06.2009, 15:59
Это MP3 в wav-контейнере либо вообще MP3 с неправильным расширением. Могу только предположить, что в первом случае возможно программно пересобрать данные в обычный MP3 файл и играть штатными средствами.

Geqsogen
01.06.2009, 16:13
Это MP3 в wav-контейнере либо вообще MP3 с неправильным расширением. Могу только предположить, что в первом случае возможно программно пересобрать данные в обычный MP3 файл и играть штатными средствами.
Это станция пишет (испокон веков - потому формат нельзя поменять), у меня около 10 000 таких файлов + в день около тысячи пишется... просто физически места не хватит конвертировать...

VVall
01.06.2009, 16:16
А я и не предлагаю конвертировать файлы заранее. Я говорю о пересборке данных в плеере - грузите файл в память, собираете в памяти новый на основе загруженного и играете новый. Если пересборка вообще возможна, она не будет ресурсоёмкой, так как перекодирование самих данных звука не потребуется, только изменение контейнера.

Geqsogen
01.06.2009, 16:22
А я и не предлагаю конвертировать файлы заранее. Я говорю о пересборке данных в плеере - грузите файл в память, собираете в памяти новый на основе загруженного и играете новый. Если пересборка вообще возможна, она не будет ресурсоёмкой, так как перекодирование самих данных звука не потребуется, только изменение контейнера.

А с этого места поподробнее - не сталкивался с изменением контейнера. Как лучше это сделать и желательно мелкий примерчек. Заранее благодарен!

VVall
01.06.2009, 16:50
Для начала я-бы попробовал всё-таки просто изменить расширение у одного файла на .mp3 и попробовать его загрузить.

О контейнерах. В MP3 звук кодируется "кадрами" - кусками по несколько сэмплов. Каждый кадр самостоятелен. Кадры лежат в файле друг за другом, заголовки есть только у кадров, а у файла нет (но есть опциональный ID3-тэг).

В WAV-контейнере есть общий заголовок у файла и блоки данных разного типа, по сигнатуре которых можно узнать, что они содержат. В одном из блоков обычно лежат звуковые данные в виде непрерывного потока, в случае с MP3 это должна быть последовательность кадров. Я не знаю точно, но думаю, что в вашем случае достаточно найти блок с данными в WAV-файле и как-то (http://www.flasher.ru/forum/showthread.php?p=807690) создать из него объект Sound.

Geqsogen
01.06.2009, 18:41
Ну чтож - спасиб большое... чуствую мелкими бедами я тут не отделаюсь :):):)

in4core
02.06.2009, 03:31
ЭЭЭ я что то не понял wav прекрасно проигрывается во флеше был и будет. или это только программно не работает ? хотя помоему тоже делал плеер на CS3 все нормально вроде было, утверждать не буду но вроде шло. А уж если не программно то сто процентов

Geqsogen
02.06.2009, 10:14
ЭЭЭ я что то не понял wav прекрасно проигрывается во флеше был и будет. или это только программно не работает ? хотя помоему тоже делал плеер на CS3 все нормально вроде было, утверждать не буду но вроде шло. А уж если не программно то сто процентов
Повторюсь, что в ActionScript я более чем слаб - мне бы примерчик кода или самый простейший плеер, чтоб посмотреть можно было.

in4core
02.06.2009, 14:39
var snd:Sound = new Sound();
snd.onLoad = function(success) { if(success) snd.start(); }
snd.loadSound("my.wav",true);
как то так попробуй может покатит

iNils
02.06.2009, 14:48
Пользователь in4core забанен на неделю за игнорирование тегов оформления кода.

Geqsogen
03.06.2009, 22:09
var snd:Sound = new Sound();
snd.onLoad = function(success) { if(success) snd.start(); }
snd.loadSound("my.wav",true);
как то так попробуй может покатит
Да чтож такое...((( сделал по этому примеру - mp3 играет а мои "вавки" не хочет!!!

etc
03.06.2009, 22:53
Хм, вообще говоря wav никто не обещал.

Geqsogen
04.06.2009, 11:59
Вообще - кто нибудь знает как такого формата wav файлы заставить играть во флеш, и вообще возможно ли это?
Может я зря мучаюсь?

etc
04.06.2009, 12:19
Ссылку на решение уже давали.

Geqsogen
04.06.2009, 12:24
Хорошо - всем спасибо за хорошие советы и что далеко не послали :)