Ich baue einen Audio-Media-Rekorder / -Player mit PhoneGap aus. Es funktioniert alles wunderbar, aber ich habe eine Falte getroffen, die ich nicht bügeln kann.
my_media.play();
spielt tatsächlich die Medien ohne Fehler in meinen Eclipse- oder XCode-Konsolen, weshalb der Alarm, der eine -1 zeigt, rätselhaft ist. Ich erwarte, dass my_media.getDuration();
die Dauer der Datei zurückgibt, die ich wiedergeben möchte.
Mein Versuch / Fang-Block wirft keinen Fehler, ich bin ziemlich verwirrt über diesen. Hier finden Sie die PhoneGap-Dokumentation zu Media.getDuration () .
> %Vor%Die Metadaten für die fraglichen Medien wurden beim Aufruf von my_media.getDuration () nicht geladen. In der Dokumentation, auf die Sie in Ihrer Frage verwiesen haben, setzt der Beispielcode den getDuration-Aufruf in ein Intervall:
%Vor%Ich würde empfehlen, etwas ähnliches zu tun.
Diese Lösung funktioniert für mich. Grundsätzlich spielen und sofort aufhören. Es scheint nicht zu dauern, scheint wie eine angemessene Workaround.
%Vor%Diese Frage ist zu alt. Aber es ist immer noch relevant, weil viele mit dem gleichen Problem konfrontiert wurden. Wenn nichts funktioniert, mache ich nur eine Sache, upgrade oder downgrade die Version. In diesem Fall habe ich mein Problem gelöst, indem ich folgende Version installiert habe.
%Vor% Ich hatte auch ein ähnliches Problem in Cordova für iOS. Ich konnte erfolgreich Audio aufnehmen, abspielen und stoppen, konnte aber die aktuelle Position und Gesamtdauer der Audiodatei nicht ermitteln. Also habe ich my_media.release()
hinzugefügt, kurz nachdem ich mit der Aufnahme von Audio fertig war, also nach my_media.stopRecord()
, und es hat wie ein Zauber funktioniert. Früher habe ich -1
für getDuration()
und 0
für getCurrentPosition()
bekommen.
Ich hoffe, es hilft jemandem.
Tags und Links javascript cordova jquery jquery-mobile