Вверх ↑
Этот топик читают: Гость
Ответов: 1926
Рейтинг: 172
#1: 2007-10-02 16:07:38 ЛС | профиль | цитата
Требуется проиграть mp3- или wav-файл, но так, чтобы не создавать его на диске. То есть, есть у меня в компоненте MemoryStream какой-то файл звука, надо прям оттуда его проиграть, чтоб на диск не переносить. Можно ли это и как?
И аналогичная задача. После записи через BASS_Record на onStream выдан поток звуковых данных. Он был записан в файл
Add(BASS_Record,8690192,329,147)
{
link(onStream,2580142:doCopyFromStream,[(380,153)(380,153)])
}
Add(FileStream,2580142,399,133)
{
Mode=1
AutoCopy=0
Point(doCopyFromStream)
}
Наверно (если ошибаюсь, поправьте) в wav-файле содержатся такие же данные, только перед ними ещё разные идентификаторы.
Так вот, теперь из этого файла (в который записаны звуковые данные) надо прочесть их и проиграть. Конечно, как стандартный wav они не идут. В связи с этим и обращаюсь к вам.
карма: 9
0
Ответов: 9906
Рейтинг: 351
#2: 2007-10-02 16:13:00 ЛС | профиль | цитата
3042 писал(а):
Конечно, как стандартный wav они не идут

Отличаются не более чем заголовком в 64 байта
Вроде... Не помню точно.
карма: 9

0
Ответов: 3851
Рейтинг: 159
#3: 2007-10-02 16:23:13 ЛС | профиль | цитата
3042 писал(а):
надо прочесть их и проиграть
если опять без сохранения, то не знаю. Если можно сохранить, то перед сохранением добавь спереди заголовок (в нём найди длину и подкорректируй). Я как-то ковырял заголовок - там не сложно, главное не заморачиваться на лишнюю инфу, на крайняк сходи на wiki.

3042 писал(а):
Конечно, как стандартный wav они не идут
если не ошибаюсь, в wav знаковое число, а в BASSпотоке - не знаю.
карма: 0
начавший
0
Ответов: 1926
Рейтинг: 172
#4: 2007-10-02 16:51:08 ЛС | профиль | цитата
Но сохранять-то мне как раз и не надо! Замучаешься: сохранять, потом удалять... А надо, чтоб просто были проиграны данные звуковые.
Я думал, в какой-нибудь компонент такие данные подать - он их проиграет. Ведь из Инета как-то проигрывает часть до полнго скачивания. Хотя там wav-файл, а не просто звуковые данные. Но в MemoryStream засунут именно wav-файл, так вот по аналогии с Инетом хотелось бы...
карма: 9
0
Ответов: 3851
Рейтинг: 159
#5: 2007-10-02 17:06:46 ЛС | профиль | цитата
3042, в примерах есть - как "числа" проигрывать
карма: 0
начавший
0
Ответов: 8928
Рейтинг: 823
#6: 2007-10-02 19:12:51 ЛС | профиль | цитата
3042, вот заголовок WAV файла:
карма: 19

0
Ответов: 1926
Рейтинг: 172
#7: 2007-10-03 15:40:15 ЛС | профиль | цитата
Леонид, спасбио большое.
Но всё-таки, как мне проиграть эти данные (с заголовком или без - теперь значения не имеет), не записывая файл на диск? Из потока.
карма: 9
0
Ответов: 3851
Рейтинг: 159
#8: 2007-10-03 16:38:53 ЛС | профиль | цитата
3042 писал(а):
как мне проиграть эти данные (с заголовком или без - теперь значения не имеет), не записывая файл на диск


ElementsDelphiExampleMediaBASS_Stream.sha
цепляйся за элемент EventFromData, и читай им свой данные
карма: 0
начавший
0
Ответов: 1926
Рейтинг: 172
#9: 2007-10-03 16:41:57 ЛС | профиль | цитата
А пример можно? А то что-то не понимаю, что подключать к Data BASS_StreamSound.
карма: 9
0
Ответов: 3851
Рейтинг: 159
#10: 2007-10-03 16:44:15 ЛС | профиль | цитата
собственно, если научиться пользоваться lame.dll (не помню как пральна она называется), то может быть можно распаковывать mp3 (недавно кто-то спрашивал) данные из памяти в память, а оттуда также проигрывать.
карма: 0
начавший
0
Ответов: 1926
Рейтинг: 172
#11: 2007-10-03 16:54:46 ЛС | профиль | цитата
Андрей. писал(а):
ElementsDelphiExampleMediaBASS_Stream.sha


Это у меня вообще глючит! Компилируется, но при нажатии на Push и движении ползунков вылетает Access violation...
карма: 9
0
Ответов: 3851
Рейтинг: 159
#12: 2007-10-03 17:16:36 ЛС | профиль | цитата
Не успел доделать (мало того, вообще не уверен возможно ли), спешу и не уверен, что сегодня доберусь до компа. Вот нерабочие наброски code_1960.txt

Идеи будут?
карма: 0
начавший
0
файлы: 1code_1960.txt [4.4KB] [222]
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2007-10-03 17:47:44 ЛС | профиль | цитата
сделать на одних hiasm элементах данную задачу не выдет. Хотя и идея полностью правиильная. К сожалению для низкоуровневых задач стандартный пакет не подходит совершенно.
карма: 27
0
Ответов: 1926
Рейтинг: 172
#14: 2007-10-03 18:21:38 ЛС | профиль | цитата
Тогда в IC?
карма: 9
0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2007-10-03 18:29:02 ЛС | профиль | цитата
да
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)