New Post: NAudio 1.6 - Wasapi Loopback COMException
Hi Mark, i think this worth notice: the below code works fine (despite the audio is set to "dataflow.render" mode , rather than "dataflow.capture" mode) as per the discussion in the above link.the only...
View ArticleNew Post: Multiple WaveIn MMException
Hi all,I must mix multiple wavein sources from different wavein devices for switching the output of mixer to another waveOut device.Also, I must mix udp source wave streams with wavein streams,...
View ArticleNew Post: wma arggggggg
Hello,I have a good start solution without any change. Just MediaFoundation initialized in the procedure Read and everyone is under the same background processes. It works with all drivers. Well, it is...
View ArticleNew Post: wma arggggggg
OK that's interesting. You could put the MF initialization into the ThreadProc on WasapiOut and maybe that will do it. ASIO would be a more difficult solution, since we don't creat the threads, but you...
View ArticleNew Post: wma arggggggg
I tested this solution in the driver but without success. In idea I rotated the routine WaveStream MediaFoundationReader Read Adding a Flag (MfStart) and initialized the mediaFoundation once. Thus...
View ArticleNew Post: wma arggggggg
I'd be interested to see the code you are using. I was thinking of having some kind of class in NAudio that ensured it was only called once, but maybe it should be called once per thread.
View ArticleNew Post: wma arggggggg
this is a example.Only Procedure modifiedprivatestring _file = "";private IMFSourceReader pReaderTh;privatebool MFStart = false; // Change pReader = Init() public MediaFoundationReader(string file) {...
View ArticleNew Post: wma arggggggg
oupsss only add & change // Add Varprivatestring _file = "";private IMFSourceReader pReaderTh;privatebool MFStart = false;// change thispublic MediaFoundationReader(string file) { _file = file;...
View ArticleNew Post: wma arggggggg
OK, so you are creating a completely different stream for reading to the one you created in the constructor which was used to get the file duration. You might run into problems with reposition, because...
View ArticleNew Post: wma arggggggg
Modified for Position///<summary>/// Current position within this stream///</summary>publicoverridelong Position {get { return position; }set {// should pass in a variant of type VT_I8...
View ArticleNew Post: wma arggggggg
there's no point keeping two instances open. You might as well dispose the one created in the constructor after you've got the length from it. Also, you will need some kind of locking as the Position...
View ArticleNew Post: wma arggggggg
Position actually I have problems.Well it was a good idea :-) No :-(
View ArticleNew Post: wma arggggggg
Position :: SOLVED (for the moment)// Modifiedpublicoverridelong Position { get { return position; } set { position = value; IsChangePosition = true; } } // Read Changedpublicoverrideint Read(byte[]...
View ArticleNew Post: wma arggggggg
yes, this is one of the best ways to do repositioning with multithreaded code. You basically just set a reposition flag (still needs to be threadsafe). The only disadvantage is that when you reposition...
View ArticleNew Post: wma arggggggg
The only disadvantage is that when you reposition while paused, it looks as if nothing has happened. You also must move these lines into the Read method: ??the latest version (read) works even during...
View ArticleNew Post: wma arggggggg
The issue is that you either have to "pretend" the reposition has happened, by setting position to the supplied value, or leave position as it was and change it when the reposition is actually...
View ArticleNew Post: Multiple WaveIn MMException
what device IDs are you using? Do you definitely have two soundcards?
View ArticleNew Post: wma arggggggg
I'm afraid, I do not quite understand your commentTo clarify the situation: publicoverrideint Read(byte[] buffer, int offset, int count) { if (MFStart == false) { pReaderTh = Init(); //SetPosition();...
View Article