zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    在ASP.NET GridView 中使用e.CommandArgument传递参数
    循环处理之while and do while
    MzTreeView(梅花雪)完全攻略
    FreeTextBox使用详解
    委托、线程的用法
    Master Theorem
    python jsonpath 语法总结
    python + zmail 邮件发送
    python的yaml语法
    unittest单元测试框架总结
  • 原文地址:https://www.cnblogs.com/nsw2018/p/15769711.html
Copyright © 2011-2022 走看看