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

  • 相关阅读:
    微信验证代码
    微信内置浏览器的JS API
    伪类和伪元素
    asp.net core mvc 脚手架搭建过程介绍
    C#无锁内存队列
    关于微软OWIN的一篇好文章
    安装了Win10预览版10074,不能设置开发模式的bug解决
    关于Quartz的一些经历
    MEF接口应用初探
    简单的接口框架
  • 原文地址:https://www.cnblogs.com/wgscd/p/11765242.html
Copyright © 2011-2022 走看看