我创建的应用程序是使用NAudio.net软件包C#录制音频通话。它工作正常,正在打开麦克风,以便在loclhost上录制。但是当我在Azure服务器上部署我的Web应用程序时,它会给出错误BadDeviceId调用waveInOpen,并且不会在文件中录制音频,也不会在我的系统上打开麦克风。
WaveInEvent waveIn = new WaveInEvent();
// Set the desired format for the captured microphone sound
waveIn.WaveFormat = new WaveFormat(16000, 16, 1);
;
//}
chunkFileName = Path.Combine(path + nameOfFolderUsingDate , "mic" + fileNameCounter + ".wav");
micWriteChunk = new WaveFileWriter(chunkFileName, waveIn.WaveFormat);
//micWriter = new WaveFileWriter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory+ "/Recordings/"+ userName + "/" + nameOfFolderUsingDate, "mic_complete_file.wav"), waveIn.WaveFormat);
micWriter = new WaveFileWriter(Path.Combine(path + nameOfFolderUsingDate, "mic_complete_file.wav"), waveIn.WaveFormat);
// AudioChunkRecorder recorder = new AudioChunkRecorder(sampleRate, channels, bitDepth, chunkDurationMs, outputFolder, outputPrefix);
// Register event handlers for DataAvailable events of both capture instances
waveIn.DataAvailable += WaveIn_DataAvailable;
// Set up the timer to save audio chunks every 3 seconds
waveIn.StartRecording();
字符串
1.我想问一下,当我在部署在Azure服务器上的浏览器上打开我的Web应用程序时,录音和麦克风访问会发生什么,它会在我的系统上打开麦克风还是使用服务器上的一些音频设备。
2.还有,当我在部署在Azure服务器上的浏览器上打开应用程序时,我需要为应用程序记录做些什么。
1条答案
按热度按时间0s0u357o1#
试着想象一下我们的C#代码,使用NAudio.net包,最后编译.dll文件并将其部署到服务器中。web应用通过浏览器打开,想调用mic,代码执行了,但是调用的是服务器mic,对吧?这就是为什么我们有这个问题。
NAudio.net包用于桌面应用程序,如WPF。
在Web应用程序中,我们应该使用Web Audio API。Here is Web Audio API SAMPLE.的