我将 Bass.dll 与 MP3 文件一起使用,它运行良好,但 MP3 似乎以不同级别的输出音量录制。
有什么方法可以测试可听音量,然后相应地调整低音音量,使所有 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;