Laden...

Audiorecorder mit winmm.dll unter windows 10

Erstellt von RainerKa vor 8 Jahren Letzter Beitrag vor 8 Jahren 7.067 Views
R
RainerKa Themenstarter:in
4 Beiträge seit 2015
vor 8 Jahren
Audiorecorder mit winmm.dll unter windows 10

Hallo

Mein Problem ist folgendes.

Ich nutze ein C# Programm für Audiozugriff mit der winmm.dll . Mit dem nutze ich den Audioeingang um mit den erhaltenen Daten eine FFT durchzuführen, die dann auf dem Monitor angezeigt wird.

Unter WIN XP, WIN 7, WIN 8.1 funktioniert alles einwandfrei nur unter Windows 10 nicht.
Ich arbeite mit Microsoft Visual Studio Express c sharp 2015.

Es werden Daten vom Audiodevice eingelesen, aber nicht vollständig, oder zu falschen Zeitpunkten.

Was ist der Unterschied zwischen WIN 10 und den anderen Windows Versionen im Zugriff auf die Hardware?
Kann ich die winmm.dll überhaupt mit Windows 10 nutzen?
Gibt es für Win 10 Audio etwas neues.

Grüße Rainer

16.842 Beiträge seit 2008
vor 8 Jahren

Also geändert hat sich hier definitiv was. Ich hatte Probleme mit genau dieser DLL bei einem älteren Spiel (Unreal Tournament 2004).
Musste warten bis ein neuer Realtek Treiber verfügbar war, dann gings wieder.

In Steam findet man bezüglich der DLL immer wieder modifizierte Versionen (was ich vor kurzem aufgrund des Spiels machen musst und darauf stoß).
Mir war das aber zu heiss und ich hab da keine der modifizierten DLLs gezogen.

R
RainerKa Themenstarter:in
4 Beiträge seit 2015
vor 8 Jahren

Moin Moin

Danke, schade das es nichts weiter darüber gibt.
Gut, ähm schlecht, dann muss ich mich wohl mit Directx anfreunden.
C sharp und Directx wenn das mal gut geht, wird Directx überhaupt gemanaged.
SlimDX, oder sharpDX habe ich schon gefunden, würde aber lieber etwas direkt von Microsoft für Win10 nutzen.
Was ist am besten geeignet. Inzwischen blicke ich da nicht mehr wirklich durch.

5.658 Beiträge seit 2006
vor 8 Jahren

Weeks of programming can save you hours of planning

R
RainerKa Themenstarter:in
4 Beiträge seit 2015
vor 8 Jahren

Hallo

Nun habe ich mich mit dem Directx.DirectSound etwas beschäftig und bin echt genervt. Habe viele Beispiele gefunden, Sharpdx, SlimDX, und Microsoft managed DirectX und ausprobiert, aber nichts funktioniert. Enweder konnte ich es nicht compilieren, oder die Programme stürzten ab. Das compiliern können, klappt inzwischen.
Angehängt habe ich ein Beispiel aus dem Netz, was dazu past was ich vorhabe, kann es Fehlerfrei compilieren, starten, und wenn ich dem Listen-Knopf klicke bleibt das Programm in der Klasse

class SelectDeviceForm : Form   
Methode   private void LoadDevices() 

hängen.
In der Funktion wird

devices = SoundCaptureDevice.GetDevices();

aufgerufen in der ihrerseits

die Directx Funktion   CaptureDevicesCollection captureDevices = new CaptureDevicesCollection();

aufruft, und das klappt nicht
Sobalt

 CaptureDevicesCollection()

aufgerufen wird ist Schicht im Schacht,
mit der Fehlermeldung > Fehlermeldung:

"FftGuitarTuner.exe hat einen Haltepunkt ausgelöst." Sonst nichts.

Ich nutze Windows 10
Microsoft Visual Studio Express 2012
Managed DirectX von Microsoft
Die SDK ist installiert.

Was mein Programmierkünste angeht programmiere ich hauptsächlich Microcontroller in C für alle möglichen auch unmöglichen 😃 Anwendungen. Csharp nutze ich um die Controller über Schnittstellen zu steuern. Hier brauch ich für eine Anwendung ebend eine FFT zum Prüfen.
Ich will nur Audiodaten einlesen und nach einer FFT den Controller entsprechend steuern. Das drumherum habe ich, mir fehlen nur die Daten vom Audioeingang.

Nun, wo liegt mein Denkfehler, habe ich etwas vergessen auf dem PC/Compiler zu konfigurieren, oder geht das nicht mehr mit Windows 10. ?? oder ist das nur ein schlechtes Beispielprogramm?

Hinweis von Coffeebean vor 8 Jahren

BItte benutze (die richtigen) Code-Tags! [Hinweis] Wie poste ich richtig? Punkt 6

5.658 Beiträge seit 2006
vor 8 Jahren

Hi RainerKa,

Managed DirektX wird schon seit mehreren Jahren nicht mehr unterstützt. Daher würde ich nicht darauf wetten, daß unter Windows 10 alles korrekt funktioniert. Versuch's lieber mit SlimDX, da gibt es auch funktionierende Beispiele, z.B. hier: [SlimDX] DirectSound: Capture Microphone Stream With Low Latency Example .

Dein angehängtes Projekt habe ich entfernt, bitte beachte unseren [Hinweis] Wie poste ich richtig?, Punkt 4.1

Christian

Weeks of programming can save you hours of planning

R
RainerKa Themenstarter:in
4 Beiträge seit 2015
vor 8 Jahren

Moin

Danke für die Infos.
Ich werde mich bemühen das nächstemal besser zu posten. Nur machmal reicht die Zeit nicht es besonders gut zu machen 😃

SlimDx sagst du, da habe ich auch gelesen das es nicht mehr weiter gepflegt wird.

Werde mal testen ob das gezeigte Beispiel funktioniert.

16.842 Beiträge seit 2008
vor 8 Jahren

Wenn Du erwartest, dass Helfer Zeit investieren, um Dir zu helfen, dann musst Du Dir Zeit nehmen den Helfern das Zeug so zu präsentieren, dass Dir auch geholfen werden kann 😉

5.658 Beiträge seit 2006
vor 8 Jahren

SlimDx sagst du, da habe ich auch gelesen das es nicht mehr weiter gepflegt wird.

Wo hast du das gelesen?

Weeks of programming can save you hours of planning

S
1 Beiträge seit 2016
vor 8 Jahren

Hallo,
ich hab ein ähnliches Problem, bei mir mit Audioausgabe. Ich benutze in einem Programm den Low Level Audio Player in C# Code (veröffentlicht auf codeproject.com). Bislang hat das wunderbar funktioniert.

Seit dem Upgrade auf Windows 10 und VS2015 Community stottert die Audioausgabe aber immer nach wenigen Sekunden.

Was ich bisher herausgefunden habe:
Stelle ich mein Projekt auf .net 3.5 um, läuft das Audio stabil. Allerdings klappt dann die Umschaltung auf 48Khz Stereo (ich bearbeite Audio-Samples, die nun einmal in diesem Format vorliegen) nicht. Ich kann dann das Device nicht öffnen. (Weder Realtek onboard Audio mit aktuellem Treiber, noch die alte Saffire LE mit Windows-7 Treiber). Stelle ich auf .net 4.0, klappt die Umschaltung, das Device wird geöffnet. Dafür fängts aber wieder an zu stottern.

Falls jemand einen Hinweis hat, woran das liegen könnte, fänd ich das toll!

Viele Grüße
Reiner