Cordova-video - / audio-nicht-Spiel aus cdvfile:// - urls nach dem update auf 3.3.0
Meine Cordova app-downloads, audio-Dateien von einem server und stellt Sie zu spielen, wenn das Gerät offline ist. Das war alles wunderbar funktioniert, bis gestern, wenn ich auf die neueste version aktualisiert.
Zunächst weder das herunterladen (über das file-transfer-plugin) noch das Spiel (über das media-plugin) funktionieren würde. In Sie suchen weiter, ich fand, dass fileSystem.root.fullPath
jetzt gibt einen relativen Pfad zu den apps der lokalen web-root-Ordner, aber es zurück, einen voll qualifizierten Pfad. Cordova-jetzt empfiehlt die Verwendung fileSystem.root.toURL()
statt (http://cordova.apache.org/news/2014/02/10/plugins-release.html). Diese tatsächlich fix die Datei transfer Problem.
Jedoch, mit dem neuen URL-Schema funktioniert nicht für audio-Dateien. Beim Versuch die Datei abzuspielen, bekomme ich die Fehlermeldung "Cannot use audio file from resource 'cdvfile://localhost/persistent/path/to/file'"
.
Überprüfung der Cordova-issue-tracker fand ich, dass sich jemand gemeldet hat das gleiche Problem für video-Dateien sowie (https://issues.apache.org/jira/browse/CB-6051).
Scheint es, dass Cordova noch nicht aktualisiert, die CDVSound-plugin, um die Handhabung der neuen Datei-Namen-format, aber es könnte noch funktionieren, wenn ich könnte Holen Sie sich den Zugang zu den vollständig qualifizierten Pfad wie vorher. Ich habe mir die neuen Codes und docs aber habe nicht gefunden, einen Weg, dies zu tun.
Hat jemand es geschafft, einen voll qualifizierten Pfad von der Datei plugin?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe es funktioniert für Videos mit der dev Filialen für Datei-und Datei-transfer. Sie hat eine Funktion, um den Eintrag Klasse namens toNativeURL Sie benötigen zum download der zip-Dateien von der github-Projekte:
https://github.com/apache/cordova-plugin-file-transfer/tree/dev
https://github.com/apache/cordova-plugin-file/tree/dev
https://github.com/apache/cordova-plugin-media/tree/dev
Dann installieren Sie Sie in Ihr Projekt:
Dies ist ein Beispiel, ich habe zu arbeiten:
Wenn es funktioniert mit dem video, es sollte auf jeden Fall die Arbeit mit audio.
Die Entwicklung der Zweig der [Media][1] und die Datei plugins nun dieses Problem lösen. Wenn Sie können, installieren Sie die plugins aus dem git, dann ist das spielen von
cdvfile://
URLs sollten einfach funktionieren.Ich poste wieder hier, wenn dieser code veröffentlicht wird, wie gut.
Update -- Wie der 2014-03-04, die Updates für Medien-und Datei veröffentlicht sind. Datei 1.0.1 und Medien 0.2.9 zusammen arbeiten, um das audio Abspielen von cdvfile URLs.
Habe ich nicht noch eine Antwort für einen voll qualifizierten Pfad, aber ich habe entschieden, zu hacken das iOS-plugin bis es eine passende Lösung von Cordova. (Zumindest kann ich weiterhin mit dev für den moment.)
Folgende code stammt aus der
file-transfer
plugin, und können Hinzugefügt werden, um CDVSound.m zu ermöglichen, das media-plugin für das Abspielen von audio-Dateien mit den neuencdvfile://
Pfade, nur iOS. Werden Sie gewarnt, wenn, ich habe nie geschrieben, eine Linie von ObjC vor und der code ist kaum getestet. Es ist ein temp-fix bis Cordova patches das aktuelle plugin.[fs filesystemPathForURL:fsURL]
rufen Sie mit einem Scheck fürif ([fs respondsToSelector:@selector(filesystemPathForURL:)])
, da es eine optionale Methode des filesystem-Protokoll. Nicht alle Datei-urls anzeigen zu physischen Standorten auf der Festplatte.