2010-05-20 51 views
3

是否可以在程序集中構建音樂播放器(我正在考慮沿着NASM的路線)?在建設過程中可能會遇到哪些障礙?用程序集構建音樂播放器

+0

[Windows已經存在](http://www.igorware.com/small-player),但它是封閉源代碼。 – 2016-06-05 17:24:58

回答

2

這是可能的 - 任何事情都可能在組裝。

主要問題是動機 - 裝配不是最有生產力的環境,所以你真的必須在開始之前在裝配中構建一些東西。

1

很可能。主要的障礙是連接到選擇的API,但我不明白爲什麼它會過於困難。

1

是的。你可以使用OS API和/或聲音庫,這是毫無意義的,所以我假設你想了解聲音是如何編碼和通過計算機硬件實現的。

基本上聲卡需要一系列值(類似於每秒48000個,它隨聲音質量變化),它代表當時揚聲器振膜的目標位置。

WAV文件只是將這些數字存儲在一個文件中。這佔用了很多空間。

MP3,OGG等應用數學變換中的數據,以減少所需的空間量,通過:

  • 降低頻率的精度,其人的聽覺是
  • 壓縮不太敏感重複音頻

要真正「實現」整個音樂播放的事情,你需要解碼音頻文件,並配置聲音硬件和數據流寫入。可以做:)

0

這是可能的,但代碼會隨着你想支持的操作系統而變化(例如,Windows代碼將與Linux代碼完全不同)。

最簡單的情況可能是在Windows下播放MIDI和/或WAV文件的程序(它已經直接支持,因此大多數情況下只是告訴它要播放什麼文件並從中進行處理)。

寫東西喜歡在組裝自己的MP3解碼器將是相當的挑戰性 - 坦率地說,順利進入那你就必須真正狂熱約彙編語言給予認真考慮的範圍內。

+2

我不同意。通過一個支持數據結構的體面的宏彙編器,用匯編語言編寫MP3解碼器不會比用C語言編寫一個更難(當然假設你在彙編語言方面非常熟練)。這肯定需要相當長的時間,但編寫MP3解碼器的許多難點在於理解需要什麼,一旦你經歷了這個障礙,實現語言就不是一個大問題。 – Artelius 2010-05-20 23:15:11

+0

@Artelius:我的經驗表明,否則,但誰知道,經驗可能是一個障礙。 – 2010-05-21 01:41:05

+1

嗯,也許我對彙編語言是一個*小*狂熱:) – Artelius 2010-05-22 10:38:20