【问题标题】:MP3 - Bass.dll and volume levellingMP3 - Bass.dll 和音量调节
【发布时间】:2014-11-30 02:58:28
【问题描述】:

我正在使用带有 MP3 文件的 Bass.dll,它运行良好,但 MP3 似乎以不同级别的输出音量录制。

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

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

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

【问题讨论】:

  • Google bass.dll 标准化,第一个链接将您直接发送到他们的论坛,并包含完整的 delphi 示例如何实现这一点...

标签: delphi mp3 volume bass.dll


【解决方案1】:

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

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;

以及我们使用trackbar调整音量时的代码。

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  // Adjust volume for the current track
  BASS_ChannelSetAttribute(Channel, BASS_ATTRIB_VOL, TrackBar1.Position / 100);
end;

【讨论】:

  • 这个答案没有解决这个问题。用户希望所有文件的音量保持一致,这只能通过使用规范化来实现...
猜你喜欢
  • 2011-03-30
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-10
相关资源
最近更新 更多