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:UsersgwangDocumentsVisual Studio 2012ProjectsTestNAudioTestNAudioinDebugAzureWebJobs103.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

  • 相关阅读:
    YII配置rabbitMQ时前期工作各种坑
    7、easyui 表单
    6、easyUI-拖放事件及应用
    5-1、easyUI-菜单与按钮(上节问题与解决)
    4、easyUI-七种布局(layout)
    3、easyUI-创建 CRUD可创建展开行明细编辑dataGrid(表格)
    redis 集群,分布式
    vue.js
    ES6标准以及支持力度
    docker使用Oracle
  • 原文地址:https://www.cnblogs.com/wgscd/p/11765242.html
Copyright © 2011-2022 走看看