2016-05-06 8 views
2

Meine Internet Radio Station Player App ist mit dem Upgrade auf Android 6 (Marshmallow) fehlgeschlagen. Zum Testen habe ich den Beispielcode (unten) aus den Dokumenten für das Medien-Plugin kopiert und eine kleine Test-App auf der neuesten Cordova (6.1.1), Android-Plattform (5.1.1), Browser-Plattform (4.1.0) und Media-Plugin erstellt (2.3.0). Ich fügte auch notwendige Whitelist-Anweisungen hinzu (unten). Auf der Browser-Plattform spielt es sowohl Internet-Dateien als auch Internet-Streams ab. Auf der Android-Plattform können keine mp3-Internet-Streams gestartet werden. Das Konsolenprotokoll zeigt, dass ein Stream innerhalb von 1 Sekunde beendet wird und der OnSuccess-Callback aufgerufen wird. Keine Fehlermeldungen, nur "playAudio(): Audio Success" protokolliert und beendet.Cordova Media Plugin schlägt mit mp3 Internet Audio Streaming auf Android 6 (Marshmallow)

Spieler Code ist

var src = "http://audio.wgbh.org:8104"; 
 
my_media = new Media(src, 
 
    // success callback 
 
    function() { 
 
     console.log("playAudio():Audio Success"); 
 
    }, 
 
    // error callback 
 
    function (err) { 
 
     console.log("playAudio():Audio Error: " + err); 
 
}

config.xml weiße Liste ist (ja unsicher, werde ich die später fix)

<plugin name="cordova-plugin-whitelist" source="npm" spec="1" /> 
<allow-navigation href="*" /> 
<allow-intent href="*" /> 
<access origin="*" launch-external="yes" /> <!-- Required for iOS9 --> 

Eine frühere Stapelüberlauf Frage von Dezember 2015 hatte das gleiche Problem "cordova media plugin stopped working on Android 6". Es schlägt einen Java-Patch für den AudioPlayer vor. Ich habe diese Änderung vorgenommen und meine Test-App neu aufgebaut. Das hat aber nichts geändert. Ist ein Cordova-Build ausreichend, um diese Änderung vorzunehmen?

BTW, testen auf einem echten Telefon an USB angeschlossen, sehen Protokoll über Chrome-Dev-Tools.

Was fehlt mir? Oder ist das ein Fehler im Media-Plugin-Java-Code oder in der Android-Plattform?

Antwort

2

Um meine eigene Frage zu beantworten, antwortet der Patch, der vorher in cordova media plugin stopped working on Android 6 zur Verfügung gestellt wurde, mein Problem. Mein Fehler war es an der falschen Stelle anzuwenden. Das Ändern des Codes direkt in Plattformen/android/src/org/apache/cordova/media/AudioPlayer.java und das erneute Erstellen der App funktioniert. (Ich habe stattdessen den Plugin-Code gepatcht). Kommentar Zeile 354, so wird es,

Das macht den Trick.

+0

Vielen Dank! Das hat perfekt funktioniert! – Fastmover