我收到的代码来自naudio record sound from microphone then save ,非常感谢Corey
这是我第二次或以后运行代码时收到的错误消息。 第一次运行时,它运行时没有任何问题。
如果我更改了文件名,它就能完美运行。
无法将文件“obj \ Debug \ Basque.exe”复制到“bin \ Debug \ Basque.exe”。该进程无法访问文件'bin \ Debug \ Basque.exe',因为它正由另一个进程使用。巴斯克
有人可以给我一些指导,告诉我我的错误
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NAudio.Wave;
namespace Basque
{
public partial class FlashCard : Form
{
public WaveIn waveSource = null;
public WaveFileWriter waveFile = null;
public FlashCard()
{
InitializeComponent();
StopBtn.Enabled = false;
StartBtn.Enabled = true;
}
private void StartBtn_Click(object sender, EventArgs e)
{
StartBtn.Enabled = false;
StopBtn.Enabled = true;
waveSource = new WaveIn();
waveSource.WaveFormat = new WaveFormat(44100, 1);
waveSource.DataAvailable += new EventHandler<WaveInEventArgs>(waveSource_DataAvailable);
waveSource.RecordingStopped += new EventHandler<StoppedEventArgs>(waveSource_RecordingStopped);
waveFile = new WaveFileWriter(@"C:\Temp\bas0001.wav", waveSource.WaveFormat);
waveSource.StartRecording();
}
private void StopBtn_Click(object sender, EventArgs e)
{
StopBtn.Enabled = false;
waveSource.StopRecording();
}
void waveSource_DataAvailable(object sender, WaveInEventArgs e)
{
if (waveFile != null)
{
waveFile.Write(e.Buffer, 0, e.BytesRecorded);
waveFile.Flush();
}
}
void waveSource_RecordingStopped(object sender, StoppedEventArgs e)
{
if (waveSource != null)
{
waveSource.Dispose();
waveSource = null;
}
if (waveFile != null)
{
waveFile.Dispose();
waveFile = null;
}
StartBtn.Enabled = true;
}
private void PlayBtn_Click(object sender, EventArgs e)
{
}
private void ExitBtn_Click(object sender, EventArgs e)
{
}
}
}
答案 0 :(得分:1)
使用Application.Exit()放置Formclosing方法可能会有所帮助;在里面。如果它只在第一次尝试时起作用,可能是因为应用程序没有完全关闭。
检查任务管理器时,您可以检查是否会修复它。只需确保您的应用程序不在那里。即使它仍然存在,Application.Exit();可能有所帮助。