AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Audiostream "knackt"
Thema durchsuchen
Ansicht
Themen-Optionen

Audiostream "knackt"

Ein Thema von Eichhoernchen · begonnen am 19. Okt 2006 · letzter Beitrag vom 22. Okt 2006
Antwort Antwort
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#1

Audiostream "knackt"

  Alt 19. Okt 2006, 16:17
Hi,
ich hab hier schonmal den Source gepostet,
den ich nutze um vom Microphon einen Audiostream zu bekommen.
Diesen gebe ich auch direkt wieder aus (nur zum Testen), jedoch bekomme ich zwischen den einzelnen Puffern jedesmal ein knacken auf dem Audiokanal, woran liegt das?
Wenn ich den Puffer kleiner mache, wird auch die Knackfrequenz höher. Habe ich da vielleicht irgendwas falsch gemacht?

Ich hab davon noch nicht so die Ahnung von daher würd ich gern etwas Hilfestellung von euch haben


Danke!
Jan
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Audiostream "knackt"

  Alt 19. Okt 2006, 16:54
Probier es mal mit wBitsPerSample auf 9 zu stellen und in der Zeile drunter 40100. Bei mir hat es dann aufgehört. Allerdings nach einer Weile auch dein Programm durch Windows und krieg deshalb nicht mehr den Taskmanager auf
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#3

Re: Audiostream "knackt"

  Alt 19. Okt 2006, 17:26
Wenn ich das richtig gesehen habe, verwendest Du nur einen Buffer?!

Versuchs mal mit mind. 2, ich habe bei meinem Programm 4 Buffer, damit klappt's Perfekt.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Audiostream "knackt"

  Alt 19. Okt 2006, 17:33
also mehr als einen Buffer?

Also immer einen auf reserve halten oder wie?

Ich versteh nicht so ganz, wie ich das machen soll... woher will ich wissen, wann der eine Buffer gespielt wurde?
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#5

Re: Audiostream "knackt"

  Alt 19. Okt 2006, 17:40
2 auf Reserve

Mit 1. aufnehmen, während der 1. gelesen wird, wird der 2. geschrieben...

Immer der Buffer, der bei DataInProc hereinkommt ist der aktuell beschriebene, den Verarbeiten (während desen wird ein anderer zum Aufnehmen verwendet) und zurück in die Liste stellen.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Audiostream "knackt"

  Alt 19. Okt 2006, 18:19
Also irgendwie will ich das nicht verstehen, wie ich das machen kann.

Ich hab mir jetzt gedacht, 4 Buffer... also nen array[1..4]
wenn nun daten kommen, werden diese in das array eingefügt, bis 3 array plätze voll sind.
Wenn nur noch 1ner leer ist, soll angefangen werden auszugeben.


Jedoch wird dann nur Müll ausgegeben... so stückchen.
Wie manage ich so ne Buffer schlange? Und wie weiß ich, wann ich anfangen kann den nächsten Buffer auszugeben?

Irgendwie voll kompliziert... oder ich bin einfach zu blöd....
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#7

Re: Audiostream "knackt"

  Alt 19. Okt 2006, 18:30
Du mußt gleich alle Buffer beim Start in die Schlange stellen, der Treiber nimmt sich automatisch einen freien Buffer zum Aufnehmen und sendet diesen in die DataProc.
Aus dieser Procodure schickst Du den Buffer, nachdem Du in kopiert hast wieder in die Schlange zurück.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#8

Re: Audiostream "knackt"

  Alt 21. Okt 2006, 20:18
Also nach meiner Erfahrung reichen zwei Puffer aus. Da knackt nix. Das haben zumindest umfangreiche Tests ergeben.

Beim Input device gehe ich so vor:
Das Device bekommt beide Puffer übergeben.
Wenn ein Puffer voll gemeldet wird, wird sein Inhalt kopiert, bzw übers Netz verschickt. Diese Verarbeitung muss kürzer dauern als die enthaltene Spielzeit. Den verarbeiteten Puffer bekommt das Device sofort wieder zum Bespielen überreicht.

Beim Output device gehe ich anders vor:
Der erste eintreffende Puffer wird um seine halbe Spielzeit verzögert dem Device übergeben. Die folgenden Puffer werden aber immer sofort übergeben.

So haben beide Devices ausreichend Zeit, von einem Puffer zum Nächsten zu schalten. Während ein Puffer benützt wird, kann das Device rechtzeitig den nächsten vorbereiten und anreihen. Ohne Wartezeit und ohne Umschalten NACHDEM der Vorgänger zu Ende ist gibt es kein Umschaltgeräusch.

grüsse,
der flossinger
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#9

Re: Audiostream "knackt"

  Alt 21. Okt 2006, 20:50
Zitat von flossinger:
Also nach meiner Erfahrung reichen zwei Puffer aus. Da knackt nix.
Kommt auf die Buffergröße und was sonst gerade am PC läuft an
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#10

Re: Audiostream "knackt"

  Alt 22. Okt 2006, 17:52
Da sagst du uns nicht viel neues.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz