2010-05-20 3 views
3

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

+0

[Уже существует для Windows] (http://www.igorware.com/small-player), но он закрыт. –

ответ

2

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

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

1

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

1

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

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

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

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

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

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

0

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

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

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

+2

Я не согласен. С достойным макроассемблером, который поддерживает структуры данных, писать MP3-декодер на языке ассемблера было бы не намного сложнее, чем писать на C (конечно, предполагая, что вы достаточно квалифицированы на языке ассемблера). Это, безусловно, займет значительно больше времени, но большая часть сложности написания MP3-декодера заключается в понимании того, что необходимо, и как только вы преодолеете это препятствие, язык реализации не является большой проблемой. – Artelius

+0

@Artelius: Мой опыт показал обратное, но кто знает, опыт может быть помехой. –

+1

Ну, может быть, я немного * фанатичен в отношении ассемблера :) – Artelius

Смежные вопросы