PhoneGap kann die Funktion "Duration ()" nicht aus der Medien-API entfernen, aber andere Methoden funktionieren

8

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%     
fusion27 13.11.2012, 19:43
quelle

4 Antworten

2

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.

    
brimil01 13.11.2012 19:54
quelle
1

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%     
Tyler Collier 12.09.2014 05:21
quelle
0

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%     
dcdrns 06.02.2016 00:23
quelle
0

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.

    
Rahul Serodia 16.10.2017 11:36
quelle