zoukankan      html  css  js  c++  java
  • 录音和朗诵的实现

    如何实现语音和朗诵的功能:

    using System;
    using System.Windows.Forms;
    using System.IO;
    using System.Media;
    using System.Runtime.InteropServices;

    namespace 播放TTS
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            //根目录
            string address = System.AppDomain.CurrentDomain.BaseDirectory;
            private void btnPlay_Click(object sender, EventArgs e)
            {
               
                foreach (string s in textBox1.Text.Split(' '))
                {
                    //string wavFile = @".\Video" + s + ".wav";
                    string wavFile = address+@"Video\" + s.ToLower() + ".wav";
                    if (File.Exists(wavFile))
                    {
                        SoundPlayer sp = new SoundPlayer(wavFile);
                        sp.PlaySync();
                    }
                }
            }
            [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
            private static extern int mciSendString(
             string lpstrCommand,
             string lpstrReturnString,
             int uReturnLength,
             int hwndCallback
            );

            private static void mciSendString(String cmd)
            {
                mciSendString(cmd, "", 0, 0);
            }

            private static void StartRecord()
            {
                mciSendString("close movie");
                mciSendString("open new type WAVEAudio alias movie");
                mciSendString("record movie");
            }

            private static void StopRecord(string filename)
            {
                mciSendString("stop movie");
                mciSendString("save movie " + filename);
                mciSendString("close movie");
            }

            //开始录音
            private void btnBegin_Click(object sender, EventArgs e)
            {
                StartRecord();
            }

            private void btnStop_Click(object sender, EventArgs e)
            {
                string title = ttbTitle.Text;
                string saveAddress = address + @"\Video\" + title.ToLower() + ".wav";
                if (File.Exists(saveAddress))
                {
                    MessageBox.Show("文件已存在,重命名");
                }
                else
                {
                    StopRecord(saveAddress);
                    MessageBox.Show("录音完毕");
                }
               
               
            }

        }
    }

    感谢来访,共同学习!
  • 相关阅读:
    OSI安全体系结构
    PHP 二维数组根据相同的值进行合并
    Java实现 LeetCode 17 电话号码的字母组合
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 14 最长公共前缀
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3058756.html
Copyright © 2011-2022 走看看