我使用的是帶有MP3文件的Bass.dll,它運行良好,但是MP3似乎已經被記錄在不同輸出音量水平。MP3 - Bass.dll和音量調節
有什麼方法可以測試可聽音量,然後相應地調整低音音量電平,以便所有的MP3都能在相同的電平上播放?
就像現在一樣,如果我拒絕那些響亮的聲音,那些安靜的聲音就不會被聽到,所以我會永遠在上下拖動音量。
我在這裏找到了一個用於使用低音和麥克風的鏈接,但這看起來不是最好的方法 - 或者它是什麼?
我使用的是帶有MP3文件的Bass.dll,它運行良好,但是MP3似乎已經被記錄在不同輸出音量水平。MP3 - Bass.dll和音量調節
有什麼方法可以測試可聽音量,然後相應地調整低音音量電平,以便所有的MP3都能在相同的電平上播放?
就像現在一樣,如果我拒絕那些響亮的聲音,那些安靜的聲音就不會被聽到,所以我會永遠在上下拖動音量。
我在這裏找到了一個用於使用低音和麥克風的鏈接,但這看起來不是最好的方法 - 或者它是什麼?
如果我沒有錯,你想要調整一個通道的音量,它必須適用於所有前面的音軌。我已經爲你發佈了一些代碼。您可以按照相同的方法播放曲目列表。一旦你設定了音量,以下所有曲目應該以相同的音量播放。
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
// Free the stream if a song is playing
if Channel <> 0 then
BASS_StreamFree(Channel);
// Create a new stream
Channel := BASS_StreamCreateFile(False, PChar(OpenDialog1.FileName), 0, 0, 0 {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
// Check if channel is unable to play
if Channel = 0 then begin
ShowMessage('Unable to play');
Exit;
end;
// Set volume for every playback
BASS_ChannelSetAttribute(Channel, BASS_ATTRIB_VOL, TrackBar1.Position/100);
// Play the track
BASS_ChannelPlay(Channel, False);
end;
end;
而我們使用軌跡欄調整音量時的代碼。
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
// Adjust volume for the current track
BASS_ChannelSetAttribute(Channel, BASS_ATTRIB_VOL, TrackBar1.Position/100);
end;
這個答案並沒有解決quesion。用戶希望所有文件都具有一致的音量級別,這隻能通過使用規範化來實現... – whosrdaddy 2014-10-06 09:07:10
谷歌bass.dll規範化,第一個鏈接發送給您直接到他們的論壇,幷包含一個完整的德爾福樣品如何實現這一目標... – whosrdaddy 2014-10-05 19:51:54