| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Проигрыватель WAV на быструю руку |
| Автор: GuManOiD 24.1.2007, 19:24 |
| В общем, есть WAV файл в памяти, нужно написать простейший плеер, выполняющий воспроизведение, остановку, смену позиции в треке (TrackBar в общем PlaySound, ясень пень, не подходит так как нельзя сделать "перемотку" Посоветуйте как это реализовать, просто нужна информация с чего начать поиски. Критерии: минимум временных затрат |
| Автор: Alexeis 25.1.2007, 16:58 |
| GuManOiD, Есть набор функций WaveOut*** и mmio***, при помощи которых можно это сделать. Я бы помог, но сейчас не успеваю http://vingrad.ru/DELPHI-DLP-001516 http://vingrad.ru/DELPHI-DLP-001515 там еще есть пару тем, которые можно почитать. |
| Автор: GuManOiD 25.1.2007, 17:32 |
Про waveOut читал в Delphi Windows SDK, не нашел как изменять позицию с которой воспроизводить... А те статьи что ты мне дал, мало к делу относятся Добавлено @ 17:33 А вот на счет mmio функций спасибо, сейчас там копаю... |
| Автор: Alexeis 25.1.2007, 17:36 | ||
Быть такого не может. Во всяком случае позицию в текущем буфере определить можно. Добавлено @ 17:37
|
| Автор: GuManOiD 25.1.2007, 17:53 |
| Ну так, мне нужно ее изменять Проблема в том, что когда некая последовательность байт загружена в MemoryStream, она еще не представляет собой WAV файл, а только после некоторых модификаций, она принимает форму WAVE (это я и имел ввиду под WAV в памяти), и мне нужно проиграть (в том числе + возможность "перемотки") результат модификаций. Но я не смог найти ничего кроме PlaySound, что бы проиграть WAV из памяти. Если это единственная возможность реализовать задумку, то существует ли способ как то вытащить из PlaySound DeviceID для дальнейших манипуляций MCI Добавлено @ 18:05 Или компонент чтоль какой посоветуйте, главная фишка чтоб из памяти воспроизводил и "перемотка" была |
| Автор: GuManOiD 25.1.2007, 18:48 | ||
А можно кода кусок Мне начинает казаться что я вообще не понял принципа функционирования Multimedia API Windows |
| Автор: Alexeis 25.1.2007, 19:11 |
| GuManOiD, вообще современные программы, такие как винамп, никогда не загружают в буфер весь трек, так как это довольно долго. Они загружают фрагментами по 20-50кб. Во первых нет большой разовой нагрузки ни на проц ни не винт, во вторых чтение с диска таким буфером просто наиболее быстрое. Если не заморачиваться, то можно даже не играться с указателем в буфере и его перемещением, а просто работать с дискретностью 20-50кб. Это совсем небольшой фрагмент и тогда перемещение будет представлять всего навсего подстановку такого буфера в устройство (нужно только определить где будет начинаться блок аудио данных, который нужно передать) Эх если успею... |
| Автор: GuManOiD 26.1.2007, 15:31 |
| Я немного не понял принципа работы WaveOut...., на данный момент разобрался, начал творить Alexeis, респект, с примером не напрягайся, ты и так очень помог После сотни в репу получишь именно ты |