WAV Player
Написал Flash плеер, воспроизводящий обычные PCM wav-файлы и строящий график амплитуд.
Позднее причешу код и выложу исходники.
UPD: Исходники.
31 comments
31 Comments so far
Leave a reply
Написал Flash плеер, воспроизводящий обычные PCM wav-файлы и строящий график амплитуд.
Позднее причешу код и выложу исходники.
UPD: Исходники.
ух ты! браво!
сразу куча идей по тому как это можно использовать.
очень интересно будет взглянуть на код.
Спасибо
Идея не моя, сразу говорю. Андрэ Мишель давно это использует для генерации звука. Однако почему-то никто не написал обычный WAV-плеер.
Приведу код в порядок, выложу.
SoundForge ported to flash
real cool!
класно ждем кода )
[...] Немного изменил структуру классов, спрятал класс SWFFormat, поправил WaveGraph. Кто не знает, о чем речь. [...]
интересно, но очень сильно безполезно.
сегодня начал рисерчить эту же тему но с загрузкой Nellymoser compressed файлов.
идея такова.
берем Nellymoser compressed файл. какуем с него СВФ закидываем в лоадер. проигрываем его. компутим спектр и снимаем синусоиду (вот только как бы это делать аккуратно). пакуем в ADPCM и отсылаем с места проишествия в неизвестном направлении. Зачем? ну например конвертр Nellymoser в читаемые форматы можно сделать.
Второй этап – написания диктофона со всем чем положено.
> интересно, но очень сильно безполезно.
Ну кому как
Вот только синусоиду с computeSpectrum снимать как-то не с руки…
а разве есть другие варианты?
Есть — написать декодер Nellymoser
)
computeSpectrum для конвертации придется проиграть полностью ролик, что само по себе уже ужос.
ХАХАХА!кстати тому кто напишет $6000 выдадут.
Tendering process
struktur will pay 6000 US$ for this project. This is not a “lowest bidder” tender,
Proposals will be judged on quality and risk analysis. Please send your
proposal to tenders@struktur.de and we will contact you with questions.
мало того что формат закрытый… еще это почти невозможный реверсинжениренг…
ролик проиграть не проблема.
как снять значения аккуратно? есть идеи?
Там вроде 2048 семплов за такт. Есть мысль учитывать позицию с точности то миллисекунды и снимать значения. Время проигрывания 2048 семплов можно считать константой. Если убегает или отстает — смещать на нужную позицию и опять воспроизводить. Только вот меня смущает то, что computeSpectrum все же ловит звук где-то на выходе, т.е. после play() не факт, что выловит нужную позицию.
а убегает и отстает как узнать?
Ну у нас же количество семплов в заданнный промежуток должно быть одинаково (по таймеру, getTimer в смысле, можно смотреть). Если у нас недостача, возвращаемся на N миллисекунд назад, если перебор, то удаляем лишние байты… Как-то так. Эксперименты ставить сейчас проблематично.
а есть желание? хотя чёт мне верится струдом что это можно толком сделать. к тому же getTimer из АС3 выбросили. а Таймер – неточно работает. Задача из разряда шаманства.
Вот если бы это получилось…. непаханая целина открывается.
БТВ. там в околоwavских тема проскакивал пример синхронизации с использованием ВАВ файла…
Желание? Не знаю, у меня сейчас задача посложнее есть.
getTimer жив, никуда он не убран, лежит в utils. А шаманство это все изначально, ещё с момента генерации SWF с вавником…
[...] и было обещано, исходники WAV Player-а. Старался сделать WAVSound наименее [...]
sorry,I just can write English.
Can wave_player access another domain .wav files?
No, it cannot. If remote domain doesn’t have crossdomain.xml with granted access for my domain or all domains, the file will not loaded for security reasons. You will get an error message if SecurityError is not handled in code (in Wave Player Demo (not in WaveSound class) i miss this, but it is not very important
.
Sorry for my Runglish =)
Thanks!
I am come from Taiwan!
Excuse me for my bad English!
Flashplayer can’t play .wav files but it can access .mp3 files over another domain even without crossdomain.xml?
Why?
Anyway,thanks for your help!
mp3? It’s impossible. mp3 or wav, no any difference.
Hi, I was looking for a library to externally load .wav files and found your WavPlayer. I tried to implement it and it works fine with the one “sound.wav” file that came along with your source. But it does not work with my own .wav files. They are in 44.1kH and 16Bit. Do you have an idea why?!!!
Thanks a lot!
Can you send me an example?
Here is a link, where you can download a .wav file, that I wanted to include. Look in the upper right corner. There you have to fill in the enter code in order to download it. I put it there, because I did not know how to send it elsewhise to you.
http://www2.bigupload.com/download_frame.php?id_file=64095JZHMH
If you have any idea, why it does not work, I would be very gratefull!!! Maybe it is just a little change in your script. Hopefuly
Thank you very much for your time!!!
Regards
I think I have found the problem. Your header looks different from mine. It seems, that some programs write other informations like author or date in the header file. This causes the header to be longer than yours. If I take out the information in a texteditor and make my header look like yours it works fine. Now, we have to find a way to change your script, that it is not depending on exactly the same looking headers. In your PCMFormat class, you define the header size uint:44;. This is right for your .wav file, but not for every other .wav file. I will try t o fix this bug and will let you know, when I will be successfull. But maybe you know better how to fix it.
If you want to contact me directly, here is my email: jdaop@web.de
Might be easier than writing on your blog:)
Ok, i’ll write you.
Hi,
I have been experimenting with your flash player project and it works well. I notice in the code it says
* This class supports 44100, 22050, 11025, 5512.5 sample rates, 8 or 16 bit, 1 or 2 channels (mono/stereo) RIFF (not RIFX) PCM wav-files without any compression.
I have made a small modifaction to the case statement to allow it to load 8000hz wav files which works but the files play too slowly, could you assist with some guidance on what would need to be modified to make these files play correctly?
thanks
Toby
[...] mp3… Единственный, найденный живым в природе флеш плеер для wav грузит весь файл целиком в память, поддерживает [...]
Я понимаю, что сжатые wav файлы не будут играть с wavPlayer, но я надеялся, что Вы могли осмотреть образец типа wav файлов, с которыми я должен работать и говорить мне, если есть что – нибудь, что могло бы быть написано в .as подлинники, чтобы сделать эту работу типа файла. Файл может быть найден в http://www.mediafire.com/?dbmtmijhoem
(sound_cmac.wav)
Кристофер, http://blog.datacompboy.ru/2009/10/15/wav-au-flash-player/
Добрый день.
У меня вопрос. А возможно ли построить подобный график для флв, не используя computeSpectrum?
Проигрывать файл лишь для того, чтобы построить график как-то не хочется.
Боюсь, что нет, т. к. у вас не будет доступа к звуковой информации из flv. Ну если только у вас не будет парсера этих самых flv.