• C# NAudio 变声


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using NAudio.Wave;
    using NAudio.Wave.SampleProviders;
     
    namespace TestNAudio
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
     
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
     
                Task.Run(()=>{
     
                var inPath = @"C:\Users\gwang\Documents\Visual Studio 2012\Projects\TestNAudio\TestNAudio\bin\Debug\AzureWebJobs103.mp3";
                var semitone = Math.Pow(2, 1.0 / 12);
                var upOneTone = semitone * semitone;
                var downOneTone = 1.0 / upOneTone;
                using (var reader = new MediaFoundationReader(inPath))
                {
                    var pitch = new SmbPitchShiftingSampleProvider(reader.ToSampleProvider());
                    using (var device = new WaveOutEvent())
                    {
                        pitch.PitchFactor = (float)upOneTone* 2.0f; // or downOneTone
                        // just playing the first 10 seconds of the file
                        device.Init(pitch.Take(TimeSpan.FromSeconds(10)));
                        device.Play();
                        while (device.PlaybackState == PlaybackState.Playing)
                        {
                            Thread.Sleep(500);
                        }
     
                        MessageBox.Show("play complete ");
     
                    }
                }
     
                });
     
     
     
            }
        }
    }

    注意:需引用 NAudio.dll

    资源: 

    NAudio :https://github.com/NAudio

    NAudio.WaveFormRenderer: https://github.com/naudio/NAudio.WaveFormRenderer

    原文地址:https://www.cnblogs.com/wgscd/p/11765242.html

  • 相关阅读:
    Pro/Toolkit示例之一:异步启动ProE
    Formatted MessageBox/AfxMessageBox
    Pro/Toolkit示例之二:同步Dll程式
    模拟按钮控件BN_CLICKED消息事件
    详解ProToolkit注册文件
    C++函数指针
    Message Basic
    C++指针之间的赋值与转换规则总结
    CString&CStringA&CStringW之间的相互转换
    Devexpress组件之XtraBars.PopupMenu的使用
  • 原文地址:https://www.cnblogs.com/nsw2018/p/15769711.html
Copyright © 2020-2023  润新知