gpt4 book ai didi

c# - 无法保存麦克风的声音

转载 作者:行者123 更新时间:2023-12-02 22:56:38 29 4
gpt4 key购买 nike

我使用下面的代码部分来启用麦克风录音,然后我保存它并用 2 个按钮播放它。但是如果在 savedialog 中我将 .wav 保存在桌面文件夹中,一切都很好,它会创建 test.wav(example) 但如果我尝试将它保存在任何其他目录/路径中,它不会做任何事情。

我想它无法创建或保存声音。但我不知道为什么。

我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;


//voice recorder

namespace recorder
{
public partial class Form1 : Form
{
[DllImport("winmm.dll")]
private static extern int mciSendString(string MciComando, string MciRetorno, int MciRetornoLeng, int CallBack);

string musica = "";

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
label1.Visible = false; //label1.Text=recording
}


//starts recording what I say to mic

private void btnStart_Click(object sender, EventArgs e)


{
label1.Visible = true;
mciSendString("open new type waveaudio alias Som", null, 0, 0);
mciSendString("record Som", null, 0, 0);
}

//stops recording and shows a save form
//This is where the problem is.
/* I don't want the program to ask the user for location and file name and format to be
saved as. I just want the file to save in c:\ with the filename "recording1" with format
as .wav */

private void btnStopnSave_Click(object sender, EventArgs e)
{


label1.Visible = false;
mciSendString("pause Som", null, 0, 0);
SaveFileDialog save = new SaveFileDialog();
save.Filter = "WAVE|*.wav";

if (save.ShowDialog() == DialogResult.OK) // this is where it needs to be altered
{
mciSendString("save Som " + save.FileName,null,0, 0);
mciSendString("close Som", null, 0, 0);
}
}

//lets user to open a WAV file by browsing files

private void btnPlay_Click(object sender, EventArgs e)
{

if (musica == "")
{
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Wave|*.wav";
if (open.ShowDialog() == DialogResult.OK)
{
musica = open.FileName;
mciSendString("play " + musica, null, 0, 0);
}
}

}
}
}

我在这里找到了代码:
saving .wav files without showdialog in C#

最佳答案

只是不要打开文件选择框/SaveFileDialog。

做这个:

  private void btnStopnSave_Click(object sender, EventArgs e)
{
label1.Visible = false;
mciSendString("pause Som", null, 0, 0);

string filename = "whatever";
mciSendString("save Som " + filename, null,0, 0);
mciSendString("close Som", null, 0, 0);
}

关于c# - 无法保存麦克风的声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27901059/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com