HTML5-audio nicht spielen in PhoneGap App (Möglich, Medien zu nutzen?)
Arbeiten an einer Basis-sound board für eine Reise ins Ausland. Richten Sie alles zu funktionieren, im Browser aber wollte PhoneGap Build/GitHub machen es Download als Handy-service ist nicht verfügbar.
Alles toll arbeiten im desktop-browser jedoch sobald seine installiert auf Android, die mp3-Dateien nicht Abspielen. Ich habe einige andere Beiträge hier über die Ungereimtheiten, die mp3s auf PhoneGap. Einige Vorschläge angeboten mit "Medien" statt . Ich bin mir nicht sicher, wie Sie Sie zu tauschen, die sich an die Stelle der code, den ich jetzt habe. Scheint, javascript zu verwenden, statt nur html. http://docs.phonegap.com/en/2.0.0/cordova_media_media.md.html#Media Beispiel von, was ich verwende:
<audio id="yes" src="audio/basic/yes.mp3"></audio>
<audio id="no" src="audio/basic/no.mp3"></audio>
<button class="button" onclick="document.getElementById('yes').play()">Yes</button>
<button class="button" onclick="document.getElementById('no').play()">No</button>
Super funktioniert im browser, aber nicht auf Android. Kann mir jemand einen Ausgangspunkt für die richtige audio?
Dank
-BR
BEARBEITEN 2-9-14
Kein Glück so weit. Das media plugin zeigt als korrekt installiert und cordova.js ist im Lieferumfang enthalten. Hier ist, was ich versucht habe.
<!DOCTYPE HTML>
<html>
<head>
<title>Media Example</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
function playAudio(url) {
//Play the audio file at url
var my_media = new Media(url,
//success callback
function() {
console.log("playAudio():Audio Success");
},
//error callback
function(err) {
console.log("playAudio():Audio Error: "+err);
});
//Play audio
my_media.play();
}
</script>
</head>
<body>
<a href="#" class="button" onclick="playAudio('/android_asset/www/audio/basic/yes.mp3');">Yes</a>
</body>
</html>
Auch versucht mit dem code, den Sie vorgeschlagen
<!DOCTYPE html>
<html>
<head>
<title>Transactions</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript">
var my_media = null;
var mediaTimer = null;
function playAudio(src) {
//Create Media object from src
my_media = new Media(src, onSuccess, onError);
//Play audio
my_media.play();
//Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function () {
//get my_media position
my_media.getCurrentPosition(
//success callback
function (position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
//error callback
function (e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
});
}, 1000);
}
}
//onSuccess Callback
function onSuccess() {
console.log("playAudio():Audio Success");
}
//onError Callback
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
</script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
document.addEventListener("deviceready", function () {
$("#Yes").on("click", function () {
playAudio(audio/basic/yes.mp3);
});
$("#No").on("click", function () {
playAudio(audio/basic/no.mp3);
});
<button class="button" id="Yes">Yes</button>
<button class="button" id="No">No</button>
</body>
</html>
Bearbeiten 2/10/14
Leider noch kein Glück. Letzten Aktualisierung unten
<!DOCTYPE html>
<html>
<head>
<title>Transactions</title>
<!-- JavaScript -->
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", function () {
$("#yes").on("click", function () {
playAudio(/android_asset/www/audio/basic/yes.mp3);
});
$("#no").on("click", function () {
playAudio(/android_asset/www/audio/basic/no.mp3);
});
}, false);
var my_media = null;
var mediaTimer = null;
function playAudio(src) {
//Create Media object from src
my_media = new Media(src, onSuccess, onError);
//Play audio
my_media.play();
}
//onSuccess Callback
function onSuccess() {
console.log("playAudio():Audio Success");
}
//onError Callback
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
</script>
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<button class="button" id="yes">Yes</button>
<button class="button" id="no">No</button>
</body>
</html>
Ich arbeite gerade an einem html5-audio-app. Getestet habe ich es mit phonegap gestern und es funktioniert gut auf meinem android-Handy. hast du die html5 <audio> - tag auch?
InformationsquelleAutor BR89 | 2014-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe schlug meinen Kopf die ganze Woche, und ich habe endlich
Media
zu arbeiten! Es gibt viele Fallstricke:Als pro Geevan die Antwort, die Sie brauchen
<script type="text/javascript" src="phonegap.js"></script>
auf Ihrer Seite.Schritt 1:
Müssen Sie die Verwendung von org.apache.cordova.media version 0.2.9 oder höher (ich bin mit 0.2.11). Als dies geschrieben wurde, PhoneGap Build unterstützt nur bis version 0.2.8. Ich glaube, die patch-notes für 0.2.9 kann habe beschlossen meine Probleme.
Schritt 2:
Der PhoneGap-Dokumentation für version 3.0.0 hat sich ein Tippfehler ist, werden Sie sicher, dass Sie mindestens die 3.3.0 Dokumentation, und stellen Sie sicher, dass die folgenden typo-kostenlos in Ihrer
config.xml
:(das Wort "Medien" in "org.apache.cordova.media.AudioHandler" fehlte in der 3.0.0-Dokumentation)
Schritt 3:
Wenn Sie gezwungen sind, verwenden Sie die CLI-version von PhoneGap (NICHT PhoneGap Build) aufgrund der Ausgabe in Schritt 1 beschrieben, seien Sie sicher, fügen Sie die erforderlichen plugins. Dies ist beschrieben in der Dokumentation:
Und fügen Sie
<gap:plugin name="org.apache.cordova.media" />
zu Ihremconfig.xml
Schritt 4:
Müssen Sie hinzufügen "/android_asset/www/", um alle Ihre audio-Datei-Pfade. Eg:
Schritt 5:
Tun alle audio-laden nach das Gerät ist betriebsbereit. Eg:
Nachdem ich diese änderungen vorgenommen, meinen Ton zu arbeiten begonnen! Viel Glück!
InformationsquelleAutor John McDonald
Ich denke, Sie sollten sagen, "die großen Werke im desktop-browser", es ist mehr eine Frage der Unterstützung der Medien in der android-Standard-browser als ein Problem mit phonegap.
Laut auf dieser Seite, der android-browser unterstützt mp3 auf einem Gerät, und ogg auf andere. Vielleicht ist Ihr Problem ist, dass Sie versuchen, verwenden Sie mp3, die auf einem Gerät nur die Unterstützung von ogg für Medien im browser?
Mit phonegap-media-plugin sollte das problem lösen.
Das vollständige Beispiel in der Dokumentations-Seite ist ganz klar.
Sie müssen nur kopieren, in Ihre Seite
playAudio
,onSuccess
undonError
Funktionen und rufen Sie dann playAudio, Wann immer Sie wollen, um eine Datei abzuspielen.Den html-Code Ihrer Seite könnte wie folgt Aussehen :
und die javasctipt (mit jquery):
Die Aufrufe von playAudio könnte auch in der onclick-direkt im html-Code, aber ich bevorzugte jquery verwenden, starten Sie hören für Klicks nur einmal phonegap ist bereit.
Nicht vergessen cordova.js und wenn Sie mit phonegap 3.x vergessen Sie nicht, installieren Sie die org.apache.cordova.media plugin
Edit:
Pfad
audio/basic/yes.mp3
davon ausgegangen, dass sich die Datei im audio-Ordner in das Stammverzeichnis der sd-Karte.verwenden
/android_asset/www/audio/basic/yes.mp3
wenn der audio-Ordner befindet sich in der phonegap-Ordner www.Nicht viel Glück leider. Habe versucht, ein paar Variationen. Bearbeiten Sie die erste Frage mit der neuen info.
Ich bearbeitet meine Antwort hinzufügen, um weitere Infos über den Speicherort der Datei und modifiziert die Funktion playAudio zu entfernen, setTimeout.
Vielen Dank für das update. Noch Auffällig aus. Jüngste Versuch bearbeitet in der original-Frage. Alles scheint zu validieren und Debuggen okay
Ich habe nicht Glück mit dem sound auch... ich Wünsche, dass diese offiziellen Handbücher sind mehr beschreibender und nicht "versuchen und beten"
InformationsquelleAutor QuickFix
Uff, das war wirklich schwer und verwirrend ... Aber ich haben es endlich geschafft!
Hier ist genau das, was ich getan habe:
index.html
AndroidManifest.xml
index.js
}
plataform/android/res/xml.config
Und es funktioniert endlich!!! 😀 uhuuuuu
InformationsquelleAutor Raony Guimarães
Könnte es eine content-security-problem, versuchen Sie es mit diesem header in der index.html.
In meinem test-Projekt, mit oder ohne es macht oder bricht die audio-Wiedergabe und Lesen von lokalen Dateien mit
$.get()
oder sowasInformationsquelleAutor mico
Wenn Sie kompilieren, zu bauen, die in cloud -,
Fügen Sie einfach folgende Zeile in Ihre index.html
Hinweis: Keine Notwendigkeit Quelle phonegap.js, beim kompilieren bauen phonegap.js Hinzugefügt werden.
Außerdem: media-plugin in config.xml als:
Wenn Plattform ist Android, Wenn Medien in der root dann werden die Medien-url muss :
/android_asset/www/test.mp3
InformationsquelleAutor Geevan
Seine eine sound-Datei Pfad Ausgabe.
statt
/android_asset/www/audio/AudioFile2.mp3
versuchen
Sehe ich alle anderen Einstellungen korrekt sind, in Ihrem gemeinsamen code.
InformationsquelleAutor AAhad