Большое разочарование
или почему вымрут Music Visualization
О SecurityError.
-У меня не работает визуализатор! Почему?
-Закройте все остальные окна с сайтами и видео-роликами.
-?!?!
Звук во FlashPlayer идет через SoundMixer. Что позволяет возпользоваться функцией SoundMixer.computeSpectrum() и получить аудио “снимок”.
Но если открыть несколько flash-роликов в одном браузере, их звук все равно будет идти через один SoundMixer. И при попытке SoundMixer’а обработать звук появится ошибка: SecurityError. Другие сайты не разрешили обрабатывать их звук (слушать можно, обрабатывать нельзя - как с картинками и BitmapData).
Долгие ожидания FlashPlayer10 окончились, можно сказать, ничем.
С computeSpectrum ситуация не поменялась.
А как же новый sound.extract()? Он дает лишь волну, но не частотную характеристику. А самостоятельно писать FFT (Fast Fourier transform) я уж точно не буду.
Я не считаю правильным просить пользователей закрывать остальные сайты, чтобы посмотреть мой.
October 20th, 2008 at 9:30 pm
какие-то странные люди оставляют звук от нескольких сайтов одновременно
я обычно смотрю только одно
а ошибку можно ловить try catch
October 20th, 2008 at 10:14 pm
Загружающийся (поставленный на паузу) ютюбовский ролик, или проигрывающийся на нулевой громкости звук тоже вызовут ошибки.
Ошибку поймать можно, не вопрос. только пользователь ничего не увидит либо получит приглашение закрыть все остальное.
October 21st, 2008 at 4:43 pm
Да, ловить ошибку не имеет смысла, увы. Кстати, подобной проблемы не наблюдал с девятым плеером. Возможно, просто везло.
На самом деле, Adobe много чего не поправило среди подобных ошибок, крутясь аки белка в колесе в погоне за новым функционалом.
Нужно отписать им баг.
Сделайте это здесь: https://bugs.adobe.com/flashplayer/
За Вами это право. Не забудьте потом оставить ссылку, чтобы Вас смогли поддержать другие пользователи.
October 27th, 2008 at 2:58 pm
“Он дает лишь волну, но не частотную характеристику. А самостоятельно писать FFT (Fast Fourier transform) я уж точно не буду”
Ну, во-первых, не обязательно самостоятельно, а во-вторых, может, не очень быстрый прокатит? Вот те кусок, который я написал на (а точнее перегнал в) АС1 в далёком 2005м:
var Pi=3.14159265358979
var y=new Array()
var FR=new Array()
var FI=new Array()
var N=100
for (var x=0;x<N;x++)
y[x]=2*Math.cos(0.3*x)+Math.random() - Math.random()
//Do Fourier transform
for (var u=0;u<N;u++){
FR[u]=0
FI[u]=0
for (x=0;x<N;x++){
FR[u]+=y[x]*Math.cos(2*Pi*x*u/N)
FI[u]+=y[x]*Math.sin(2*Pi*x*u/N)
}
}
Пара пассов руками, и ты снова на коне. Мы в тебя верим! Ну вот, отписался в блоге, как и обещал
October 31st, 2008 at 4:22 am
кстати о птицах, http://www.gskinner.com/blog/archives/2008/10/simple_flash_pl.html - не использует спектр в принципе. и что, плохо ему?
по сути, на кой нам здался именно фурье? прогоняем сигнал через абсолютно любой фильтр (функцию) с буфером в значений 10 - 20, и имеем на выходе некие абстрактные значения, как то изменяющиеся в зависимости от музыки. и что, собственно, ещё надо то?