BadDeviceId调用waveInOpen,我在.net core 6上使用Naudio,在Azure上部署Web应用程序进行录制后出现错误

u0sqgete  于 2023-08-07  发布在  .NET
关注(0)|答案(1)|浏览(340)

我创建的应用程序是使用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服务器上的浏览器上打开应用程序时,我需要为应用程序记录做些什么。

0s0u357o

0s0u357o1#

试着想象一下我们的C#代码,使用NAudio.net包,最后编译.dll文件并将其部署到服务器中。web应用通过浏览器打开,想调用mic,代码执行了,但是调用的是服务器mic,对吧?这就是为什么我们有这个问题。

NAudio.net包用于桌面应用程序,如WPF。

在Web应用程序中,我们应该使用Web Audio APIHere is Web Audio API SAMPLE.

相关问题