-1

我将 Bass.dll 与 MP3 文件一起使用,它运行良好,但 MP3 似乎以不同级别的输出音量录制。

有什么方法可以测试可听音量,然后相应地调整低音音量,使所有 MP3 播放的音量大致相同?

像现在这样,如果我把大声的关掉,安静的人就听不到了,所以我总是在上下调整音量。

我在这里找到了使用低音和听麦克风的链接,但这似乎不是最好的方法——或者是吗?

4

1 回答 1

0

如果我没记错的话,你想调整一个通道的音量,它必须适用于所有前面的轨道。我已经为您发布了一些代码。您可以使用相同的方法播放曲目列表。设置音量后,以下所有曲目应以相同的音量播放。

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;
于 2014-10-06T06:11:06.747 回答