アセンブリで音楽プレーヤーを構築することは可能ですか (NASM に沿って考えています)? 構築の過程で直面する可能性のある障害は何ですか?
4 に答える
可能です - 組み立ては何でも可能です。
主な問題は動機です。アセンブリは環境の中で最も生産的ではないため、開始する前にアセンブリで何かを構築する必要があります。
はい、そうです。OS API やサウンド ライブラリを使用することもできますが、これは意味がありません。そのため、サウンドがどのようにエンコードされ、コンピュータ ハードウェアによって実現されるかについて学びたいと考えていると思います。
基本的に、サウンド カードには、その時点でのスピーカー ダイアフラムのターゲット位置を表す一連の値 (1 秒あたり 48000 など、音質によって異なります) が必要です。
WAV ファイルは、これらの数値をファイルに保存するだけです。これは多くのスペースを占有します。
MP3、OGG などは、データに数学的変換を適用して、必要な容量を削減します。
- 人間の聴覚が敏感でない周波数の精度を下げる
- 反復オーディオを圧縮する
音楽再生全体を実際に「実現」するには、オーディオ ファイルをデコードし、サウンド ハードウェアを構成して、データ ストリームを書き込む必要があります。できる:)
かなり可能。主な障害は、選択した API へのリンクにありますが、なぜそれが非常に難しいのかわかりません。
可能ですが、サポートする OS によってコードが異なります (たとえば、Windows のコードは Linux のコードとはまったく異なります)。
最も単純なケースは、おそらく Windows で MIDI および/または WAV ファイルを再生するプログラムです (Windows はすでにかなり直接的にサポートしているため、ほとんどの場合、再生するファイルを指定するだけで、そこから処理が行われます)。
アセンブリで独自の MP3 デコーダのようなものを作成するのはかなり困難です。率直に言って、アセンブリ言語を真剣に検討するには、アセンブリ言語について本当に熱狂的でなければならないレベルです。