![]() |
SoundMixer.computeSpectrum() А что он считает?
Прочитал мануал, много раз, по слогам... все равно не понял =) Может, если кому не лень, объясните пожалуйста более человеческим языком =)
Просто у меня получились какие-то, не просто дикие, а вообще, заоблачные цифры... Т.е. за 1 вызов этой функции она создаст массив длиной 2048 байтов, из которых 4 * 256 описывают левый канал и 4 * 256 описывают правый канал. А вот теперь вопрос: за какой промежуток времени? Т.е. это не может быть 1/44100 секунды... потому что это примерно в 200 раз больше, чем нужно тому же WAVE для того, чтобы без сжатия сохранить ту же информацию... (ну, я отказываюсь верить, что 1 секунда не бог весть какого качественного звука может весить 80 с копейками Мб...) После некоторых разъяснений оказалось, что эта функция либо не применима к моему случаю вообще, либо, опять же я чего-то не понимаю... Т.е. она действительно описывает звук протяженностью 1/44100 секунды, просто, делает это каким-то мне не понятным способом... (зачем нужно 2Кб на то, на что самый "не сжатый" формат тратит ну, максимум 32 байта...) Но, все равно, делать "скриншоты" с такой частотой не получится... даже если пытаться делать их поэтапно - все равно точности таймера и близко для этого не хватит... обидно... |
На момент вызова и делает «скриншот», собственно.
|
я никогда не пользовался этой функцией. не подскажете: это типа преобразования фурье чтоли?
|
Я не уверен, что отвечу абсолютно правильно, надеюсь, меня поправят, если что...
Вобщем, забегая вперед, преобразования Фурье - это второй возможный вариант ее использования (т.е. звук условно разбивается на 8 каналов, сортируется по высоте тона (мб не совсем правильный термин) и отображает громкость (в цифровом представлении) от 0 до 255. т.е. графически это можно представить как 8 столбиков по 256 кирпичиков каждый расставленные от самых низких частот до самых высоких. Что в таком способе представления мне не удобно - так это то, что присутствует нереальное количество избыточной информации... т.е. всю ту же инфу можно было записать используя только пики (значения положений вершин столбиков, а не все кирпичики из которых они сложены). |
пихайте в байт аррай и читайте только пики, если так хочется. Преобразование фурье немного для другого - при помощи него, например, можно сделать эквалайзер - когда для каждого тона можно задать свою громкость
|
аха, с частотой 1/44 миллисекунды? %) А их бы еще посчитать надо успеть... %)
|
на самом деле сами подумайте что такое 1/44100 секунды... это минимальный промежуток дискретизации... Так как мы дискретизируем звуковую волну, то за 1/44100 секунды мы может получить скриншот состоящий из одной цифры - отклонения от нуля на какое-то значение в положительную или отрицательную сторону. Так что это действительно скриншот, но длиннее... он содержит в себе информацию о звуке, который длился последние 1/(44100/256) секунды. (если не ошибаюсь в последней цифре) Секунда, кстати, это действительно много, как для звука так и для скорости вычислений. Так что вполне можно 25 раз в секунду снимать скриншот, анализировать его и делать с полученными данными все что заблагорассудится.
|
Да не хватит 1 раз в 40 миллисекунд делать скриншот для того, чтобы потом нормально записать ту же информацию в файл. Речь вообще изначально шла о сохранении без потери качества, а вы предлагаете одним махом снизить точность на 3 порядка =)
Вобщем, оставте... это бессмысленный путь, так точно ничего не получится... я это уже понял, разочаровался и забыл =) Так что тему в принципе можно закрыть =) |
Вы придумали очень извращенное решение. Может если объясните суть задачи можно будет придумать другое?
|
пока что решение только одно - парсить WAVE, и в соответствии с тем, чего пользователь в миксере намешает этот самый файл переписывать... но все равно это очень трудоемкая штука... вполне возможно, что от идеи вообще прийдеться отказаться... очень высокие требования к полученому звуку... да и вообще, если я даж научусь это делать... флеш не та технология, на которой это надо было изначально делать...
|
| Часовой пояс GMT +4, время: 09:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.