跳轉到內容

BlitzMax/模組/音訊/音訊取樣

來自華夏公益教科書,開放的書籍,為開放的世界

BlitzMax 音訊取樣模組包含用於建立和載入音訊取樣的命令,這些音訊取樣可與 BlitzMax BRL.Audio 模組一起使用。

TAudioSample

[編輯 | 編輯原始碼]

音訊取樣型別

欄位
  • 取樣
  • 長度
  • 赫茲
  • 格式
方法
  • 複製
  • 轉換
函式
  • 建立
  • 建立靜態

TAudioSample: 欄位

[編輯 | 編輯原始碼]
取樣

欄位取樣:Byte Ptr

描述:指向取樣資料的位元組指標

長度

欄位長度

描述:取樣資料的長度(以取樣數為單位)

赫茲

欄位赫茲

描述:取樣率

格式

欄位格式

描述:取樣格式

TAudioSample: 方法

[編輯 | 編輯原始碼]
複製

方法Copy:TAudioSample()

描述:複製音訊取樣

返回:一個新的音訊取樣物件

轉換

方法Convert:TAudioSample(to_format)

描述:轉換音訊取樣

返回:一個新的音訊取樣物件,使用指定的格式

TAudioSample: 函式

[編輯 | 編輯原始碼]
建立

函式Create:TAudioSample(length, hertz, format)

描述:建立一個音訊取樣

返回:一個新的音訊取樣物件

建立靜態

函式CreateStatic:TAudioSample(samples:Byte Ptr, length, hertz, format)

描述:建立一個靜態音訊取樣

返回:一個新的音訊取樣物件,它引用現有的記憶體塊

TAudioSampleLoader

[編輯 | 編輯原始碼]

音訊取樣載入器型別

要建立自己的音訊取樣載入器,您應該擴充套件此型別並提供一個LoadAudioSample方法。要將您的音訊取樣載入器新增到系統中,只需使用New建立它的例項即可。

方法
  • LoadAudioSample

TAudioSampleLoader: 方法

[編輯 | 編輯原始碼]
LoadAudioSample

方法LoadAudioSample:TAudioSample(stream:TStream)

描述:載入一個音訊取樣

返回:一個新的音訊取樣物件,如果無法載入取樣則返回Null

資訊:擴充套件型別必須實現此方法。

CreateAudioSample

[編輯 | 編輯原始碼]

函式CreateAudioSample:TAudioSample(length, hertz, format)

描述:建立一個音訊取樣

返回:一個音訊取樣物件

資訊length是為取樣分配的取樣數。hertz是音訊取樣播放時的每秒取樣頻率(hz)。format應該是以下之一:

格式 描述
&SF_MONO8 單聲道無符號 8 位
&SF_MONO16LE 單聲道有符號 16 位小端
&SF_MONO16BE 單聲道有符號 16 位大端
&SF_STEREO8 立體聲無符號 8 位
&SF_STEREO16LE 立體聲有符號 16 位小端
&SF_STEREO16BE 立體聲有符號 16 位大端

示例:

' createaudiosample.bmx

Local sample:TAudioSample=CreateAudioSample( 32,11025,SF_MONO8 )

For Local k=0 Until 32
        sample.samples[k]=Sin(k*360/32)*127.5+127.5
Next

Local sound:TSound=LoadSound( sample,True )

PlaySound(sound)

Input

CreateStaticAudioSample

[編輯 | 編輯原始碼]

函式CreateStaticAudioSample:TAudioSample(samples:Byte Ptr, length, hertz, format)

描述:使用現有資料建立一個音訊取樣

返回:一個新的音訊取樣物件,它引用現有的記憶體塊

資訊:當音訊取樣被刪除時,靜態音訊取樣引用的記憶體不會被釋放。

請參閱CreateAudioSample瞭解可能的format值。

LoadAudioSample

[編輯 | 編輯原始碼]

函式LoadAudioSample:TAudioSample(url:Object)

描述:載入一個音訊取樣

返回:一個音訊取樣物件

華夏公益教科書