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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM