gpt4 book ai didi

c# - 如何控制 LibVLCSharp 中的音频变调?

转载 作者:行者123 更新时间:2023-12-02 23:27:36 31 4
gpt4 key购买 nike

我目前正在使用 C# 和 LibVLCSharp 开发卡拉 OK 系统。任何人都可以帮我如何用它改变音频变调器吗?

\libvlc\win-x86\plugins\audio_filter 目录下有libscaletempo_plugin 和libscaletempo_pitch_plugin 模块。如何在 LibVLCSharp 中应用音频过滤器模块?

已尝试跟随但它不起作用。

Core.Initialize();
LibVLC libVlc = new LibVLC();
mp1 = new MediaPlayer(libVlc);
mp1.Hwnd = pictureBox1.Handle;
Media media = new Media(libVlc, @"c:\testsong.mp4", FromType.FromPath);
media.AddOption("--audio-filter=scaletempo_pitch");
media.AddOption("--pitch-shift=5");
mp1.Play(media);

试过了,不行。

...
...
media.AddOption(":audio-filter=scaletempo_pitch");
media.AddOption(":pitch-shift=5");
mp1.Play(media);

试过了,还是不行。

Core.Initialize();
string[] options = { "--audio-filter=scaletempo_pitch", "--pitch-shift=5" };
LibVLC libVlc = new LibVLC(options);
mp1 = new MediaPlayer(libVlc);
mp1.Hwnd = pictureBox1.Handle;
Media media = new Media(libVlc, @"c:\testsong.mp4", FromType.FromPath);
mp1.Play(media);

我一直在搜索,但找不到应用带有变调的音频过滤器的解决方案。我需要的是一个函数,可以在播放媒体时调用它来传递从 -12 到 12 的音频音高偏移值。

提前致谢。

最佳答案

下面是我用于尝试 VLC 音高转换的示例代码。有谁知道如何在 SetAudioCallbacks 中使用 PlayCallback() 函数? C# 的任何示例或引用?

using LibVLCSharp.Shared;
using LibVLCSharp.Shared.Structures;
using static LibVLCSharp.Shared.MediaPlayer;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{

private MediaPlayer mp1;
private LibVLC libVlc;
private string filePath = @"C:\Users\user\Desktop\testsong.mp4";

public Form1()
{
if (!DesignMode) Core.Initialize();
InitializeComponent();
}

private void TrackVolume_Scroll(object sender, EventArgs e)
{
mp1.Volume = trackVolume.Value;
}

private void Form1_Load(object sender, EventArgs e)
{
string[] options = { "--audio-filter=scaletempo_pitch" };
libVlc = new LibVLC(options);
mp1 = new MediaPlayer(libVlc);
mp1.SetAudioCallbacks(playCallBack, null, null, null, null);
mp1.Hwnd = pictureBox1.Handle;
}

private void BtnPlay_Click(object sender, EventArgs e)
{
Media media = new Media(libVlc, filePath, FromType.FromPath);
mp1.Play(media);
mp1.Volume = trackVolume.Value;
}


private void playCallBack(IntPtr data, IntPtr samples, uint count, long pts)
{
// anyone know how to code in playCallBack to control scaletempo_pitch (-12.0 to 12.0) ???
}

}
}

关于c# - 如何控制 LibVLCSharp 中的音频变调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60430358/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com