我希望能夠製作自己的聲音文件。其實發揮一定的聲音幾秒鐘,然後繼續下一部分分機...聲音。它究竟如何工作?
像..例如,圖像(如果你認爲一個位圖)有像素。每個像素都有一個由十六進制標識的特定顏色變化。
如果我想繪製圖像,我會閱讀圖像文件,找到合適的ID,並在該位置顯示該特定顏色。
聲音如何工作?它的hz和流媒體就像一個視頻,所以它會......通過在那個'時刻'播放特定的HZ然後移動到下一個HZ來識別它?
我可能會使用C++或Java來製作/播放它,所以任何幫助將不勝感激。
我希望能夠製作自己的聲音文件。其實發揮一定的聲音幾秒鐘,然後繼續下一部分分機...聲音。它究竟如何工作?
像..例如,圖像(如果你認爲一個位圖)有像素。每個像素都有一個由十六進制標識的特定顏色變化。
如果我想繪製圖像,我會閱讀圖像文件,找到合適的ID,並在該位置顯示該特定顏色。
聲音如何工作?它的hz和流媒體就像一個視頻,所以它會......通過在那個'時刻'播放特定的HZ然後移動到下一個HZ來識別它?
我可能會使用C++或Java來製作/播放它,所以任何幫助將不勝感激。
你的問題是有點模糊,但我會解釋一樣的.wav格式的基本思想:
捕獲聲波的時間間隔:
赫茲用於確定間隔的大小。如果繪製在一張圖上,它就會像它產生的聲波一樣。
未壓縮的聲音文件通常與信息一起存儲,其中包括採樣率,通道數和每個採樣的位數等等。
除此之外,他們還定義了一個樣本集合。這些採樣以恆定的間隔(採樣率)出現,並以文件指定的採樣格式表示幅度。
你可以認爲它是像圖像的電影與更少的域和更高的採樣頻率(相當於fps)。每幀表示一個幅度而不是圖像。
lisndfile可能是瞭解音頻文件結構的一個很好的起點 - 它支持多種格式。
不好意思讓我說清楚一點。 有什麼方法與C或Java中的聲卡進行通話並且實際播放聲音? 例如...對於一個圖像(不是字面意思),它將顯示(pixelID:Hexa,x,y,z)並循環顯示,直到所有圖像都完成爲止。 對於聲音來說,它會是..... play(.... HZid?)... – sfxworks
@sfxworks操作系統應該提供一個函數,或者您可以使用類似OpenAL的函數庫。 – Pubby