Сборка музыкального плеера со сборкой - PullRequest
3 голосов
/ 20 мая 2010

Возможно ли собрать музыкальный проигрыватель в сборке (я думаю по аналогии с NASM)? С какими препятствиями можно столкнуться в процессе строительства?

Ответы [ 4 ]

2 голосов
/ 20 мая 2010

Возможно - в сборке возможно все.

Основная проблема - это мотивация - сборка не самая продуктивная из сред, поэтому вам действительно нужно захотеть что-то построить в сборке перед началом.

1 голос
/ 20 мая 2010

Да, это так. Вы могли бы просто использовать OS API и / или звуковую библиотеку, что было бы бессмысленно, поэтому я предполагаю, что вы хотите узнать о том, как звук кодируется и реализуется компьютерным оборудованием.

Обычно для звуковой карты требуется поток значений (например, 48000 в секунду, в зависимости от качества звука), которые представляют целевую позицию диафрагмы динамика в то время.

WAV-файлы просто хранят эти цифры в файле. Это занимает много места.

MP3, OGG и т. Д. Применяют математические преобразования к данным, чтобы уменьшить объем требуемого пространства:

  • снижение точности частот, к которым человеческий слух менее чувствителен
  • сжатие повторяющегося звука

Чтобы действительно «достичь» всего, что играет музыка, вам необходимо декодировать аудиофайл, настроить звуковое оборудование и записать в него поток данных. Можно сделать:)

1 голос
/ 20 мая 2010

Вполне возможно. Основными препятствиями будут ссылки на выбранный API, хотя я не понимаю, почему это будет слишком сложно.

0 голосов
/ 20 мая 2010

Возможно, но код будет отличаться в зависимости от ОС, которую вы хотите поддерживать (например, код для Windows будет полностью отличаться от кода для Linux).

Простейшим случаем, вероятно, будет программа для воспроизведения MIDI и / или WAV-файлов под Windows (которую она уже поддерживает довольно напрямую, так что вы в основном просто указываете, какой файл воспроизводить, и она обрабатывает что-то оттуда).

Написание чего-то наподобие вашего собственного MP3-декодера в сборке было бы значительно более сложным - откровенно говоря, в той области, в которой вы должны быть действительно фанатичными о языке ассемблера, чтобы серьезно его рассмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...