|
|
wavplay(y, Fs, 'async') durch audioplayer() ersetzen |
|
Unrealmirakulix |
Forum-Anfänger
|
|
Beiträge: 44
|
|
|
|
Anmeldedatum: 11.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015a
|
|
|
|
|
|
Verfasst am: 15.10.2013, 14:20
Titel: wavplay(y, Fs, 'async') durch audioplayer() ersetzen
|
|
|
|
|
Hallo zusammen,
wie sicher schon einige in den Warnungen gelesen haben wird wavplay() nicht mehr lange in Matlab eingebaut werden. Als Empfehlung wird beschrieben, man solle auf audioplayer() umsteigen. Was in Minimalbeispielen keinerlei Probleme darstellt.
Nun zu meiner speziellen Situation: Ich muss Audiodateien auslesen (geht mit audioread() wunderbar) und anschließend abspielen (geht mit P = audioplayer(); play(p)).
Nur habe ich da zwei Signale, die teils zur gleichen Zeit laufen: Signal #1 startet, dann startet Signal #2, Signal #2 endet und schließlich endet auch Signal #1. Signal #1 läuft also durchgehend und #2 ist darin eingebettet / überlagert #1 in der Mitte.
Mit wavplay im async-Modus zweimal hintereinander war / ist das kein Problem. Nur mit dem audioplayer() bekomme ich das nicht hin: wenn ich zweimal play() verwende, stoppt die Wiedergabe sobald #2 play() bekommt. Das meiner wavplay()-Variante am nächsten ist bisher erst play() und dann playblocking(), was jedoch die Wiedergabe nach Ende von Signal #2 enden lässt und damit das Ende von Signal #1 fehlt.
Hier ein Codeausschnitt:
Hat jemand eine Idee wie man das gewünschte Verhalten, wie ich es oben beschrieben habe, auch mit dem audioplayer() hinbekommt?
Vielen Dank schon mal und wenn es noch Fragen gibt, nur zu
EDIT by denny: bitte keine Doppelpostings/Triplepostings
|
|
|
|
|
Unrealmirakulix |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 44
|
|
|
|
Anmeldedatum: 11.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015a
|
|
|
|
|
|
Verfasst am: 19.10.2013, 14:02
Titel:
|
|
ok, habe eine Lösung gefunden:
Das Problem ist, dass sich das ganze in einer Unterfunktion befindet und am Ende der Funktion auch alle audioplayer-Objekte beendet werden. Also muss am Ende einfach eine Pause eingebaut werden, die das Beenden der Unterfunktion verhindert bis alle audioplayer fertig sind.
Mit diesem kleinen Workaround lässt sich das gewünschte Ergebnis recht leicht erreichen.
also einfach pause() mit der Länge der verbleibenden Zeit = (Maskerlänge) - (Pausenlänge zwischen Targetstart und Maskerstart).
Schöne Grüße
Daniel
|
|
|
tezoost |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 12.02.15
|
|
|
|
Wohnort: Pakistan
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2015, 08:36
Titel:
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 12.02.2015, 15:45
Titel:
|
|
Hallo tezoost,
Welches ist denn "die variante mi t ~"? Hast Du schon erklärt, was daran nicht funktioniert?
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|