506 lines
14 KiB
Markdown
Raw Normal View History

2016-05-16 17:19:54 -06:00
<!---
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# cordova-plugin-media
Dieses Plugin bietet die Möglichkeit zum Aufzeichnen und Wiedergeben von audio-Dateien auf einem Gerät.
**Hinweis**: die aktuelle Implementierung eine W3C-Spezifikation für Medien-Capture nicht einhalten, und wird nur zu Informationszwecken zur Verfügung gestellt. Zukünftiger Implementierungen wird an der aktuellen W3C-Spezifikation und kann die aktuellen APIs entweiht.
Dieses Plugin wird einen globalen `Media`-Konstruktor definiert.
Obwohl im globalen Gültigkeitsbereich, steht es nicht bis nach dem `deviceready`-Ereignis.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(Media);
}
## Installation
cordova plugin add cordova-plugin-media
## Unterstützte Plattformen
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 und 8
* Tizen
* Windows
## Windows Phone Macken
* Nur eine Mediendatei kann gleichzeitig abgespielt werden.
* Es gibt strenge Beschränkungen, wie Ihre Anwendung mit anderen Medien interagiert. Finden Sie in der [Microsoft-Dokumentation für details][1].
[1]: http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh184838(v=vs.92).aspx
## Medien
var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
### Parameter
* **Src**: ein URI mit der audio-Inhalte. *(DOM-String und enthält)*
* **MediaSuccess**: (Optional) der Rückruf, der nach dem führt ein `Media` -Objekt abgeschlossen hat, die aktuelle Wiedergabe, Aufzeichnung oder Stop-Action. *(Funktion)*
* **Medienfehler**: (Optional) der Rückruf, der ausgeführt wird, wenn ein Fehler auftritt. *(Funktion)*
* **MediaStatus**: (Optional) der Rückruf, der ausgeführt wird, um Statusänderungen anzugeben. *(Funktion)*
### Konstanten
Die folgenden Konstanten werden als einzigem Parameter an den `mediaStatus`-Rückruf gemeldet:
* `Media.MEDIA_NONE`= 0;
* `Media.MEDIA_STARTING`= 1;
* `Media.MEDIA_RUNNING`= 2;
* `Media.MEDIA_PAUSED`= 3;
* `Media.MEDIA_STOPPED`= 4;
### Methoden
* `media.getCurrentPosition`: Gibt die aktuelle Position in einer Audiodatei.
* `media.getDuration`: Gibt die Dauer einer Audiodatei.
* `media.play`: Starten Sie oder fortsetzen Sie der Wiedergabe einer Audiodatei.
* `media.pause`: Anhalten der Wiedergabe einer Audiodatei.
* `media.release`: Das zugrunde liegende Betriebssystem audio Ressourcen frei.
* `media.seekTo`: Verschiebt die Position innerhalb der audio-Datei.
* `media.setVolume`: Stellen Sie die Lautstärke für die Audiowiedergabe.
* `media.startRecord`: Starten der Aufnahme einer audio-Datei.
* `media.stopRecord`: Stoppen Sie die Aufnahme einer audio-Datei.
* `media.stop`: Abspielen einer Audiodatei zu stoppen.
### Zusätzliche ReadOnly-Parameter
* **Position**: die Position innerhalb der audio-Wiedergabe in Sekunden.
* Nicht während des Spiels automatisch aktualisiert; Rufen Sie `getCurrentPosition` zu aktualisieren.
* **Dauer**: die Dauer der Medien, in Sekunden.
## media.getCurrentPosition
Gibt die aktuelle Position in einer Audiodatei. Außerdem aktualisiert `das Medienobjekt` `position`-Parameter.
media.getCurrentPosition(mediaSuccess, [mediaError]);
### Parameter
* **MediaSuccess**: der Rückruf, der die aktuelle Position in Sekunden übergeben wird.
* **Medienfehler**: (Optional) der Rückruf ausgeführt, wenn ein Fehler auftritt.
### Kurzes Beispiel
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
// Update media position every second
var mediaTimer = setInterval(function () {
// get media position
my_media.getCurrentPosition(
// success callback
function (position) {
if (position > -1) {
console.log((position) + " sec");
}
},
// error callback
function (e) {
console.log("Error getting pos=" + e);
}
);
}, 1000);
## media.getDuration
Gibt die Dauer einer Audiodatei in Sekunden. Wenn die Dauer unbekannt ist, wird der Wert-1 zurückgegeben.
media.getDuration();
### Kurzes Beispiel
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
// Get duration
var counter = 0;
var timerDur = setInterval(function() {
counter = counter + 100;
if (counter > 2000) {
clearInterval(timerDur);
}
var dur = my_media.getDuration();
if (dur > 0) {
clearInterval(timerDur);
document.getElementById('audio_duration').innerHTML = (dur) + " sec";
}
}, 100);
## Media.Pause
Pausen Abspielen einer Audiodatei.
media.pause();
### Kurzes Beispiel
// Play audio
//
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();
// Pause after 10 seconds
setTimeout(function () {
media.pause();
}, 10000);
}
## Media.Play
Startet oder setzt fort, Abspielen einer Audiodatei.
media.play();
### Kurzes Beispiel
// Play audio
//
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();
}
### iOS Macken
* **NumberOfLoops**: übergeben Sie diese Option, um die `play` -Methode können Sie die Anzahl der angeben soll die Mediendatei ausspielen, z.B.:
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
myMedia.play({ numberOfLoops: 2 })
* **PlayAudioWhenScreenIsLocked**: übergeben Sie diese Option, um die `play` -Methode können Sie angeben, ob Sie möchten Wiedergabe zu ermöglichen, wenn der Bildschirm gesperrt ist. Wenn legen Sie auf `true` (der Standardwert), der Zustand der die mute Taste wird ignoriert, z.B.:
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
myMedia.play({ playAudioWhenScreenIsLocked : false })
* **Reihenfolge der Dateisuche**: Wenn nur ein Dateiname oder Pfad angegeben wird, sucht iOS in das `www` Verzeichnis für die Datei, dann in der Anwendung `documents/tmp` Verzeichnis:
var myMedia = new Media("audio/beer.mp3")
myMedia.play() // first looks for file in www/audio/beer.mp3 then in <application>/documents/tmp/audio/beer.mp3
## media.release
Das zugrunde liegende Betriebssystem audio Ressourcen frei. Dies ist besonders wichtig für Android, da gibt es eine begrenzte Anzahl von OpenCore-Instanzen für die Medienwiedergabe. Anwendungen sollten die `release`-Funktion für alle `Media`-Ressourcen aufrufen, die nicht mehr benötigt wird.
media.release();
### Kurzes Beispiel
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
my_media.play();
my_media.stop();
my_media.release();
## media.seekTo
Legt die aktuelle Position in einer Audiodatei.
media.seekTo(milliseconds);
### Parameter
* **miliseconds**: die Position die Wiedergabeposition innerhalb des Audiotracks in Millisekunden festgelegt.
### Kurzes Beispiel
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
my_media.play();
// SeekTo to 10 seconds after 5 seconds
setTimeout(function() {
my_media.seekTo(10000);
}, 5000);
### BlackBerry 10 Macken
* BlackBerry OS 5-Geräten unterstützt nicht.
## media.setVolume
Stellen Sie die Lautstärke für eine audio-Datei.
media.setVolume(volume);
### Parameter
* **volume**: die Lautstärke für Wiedergabe fest. Der Wert muss im Bereich zwischen 0,0 und 1,0 liegen.
### Unterstützte Plattformen
* Android
* iOS
### Kurzes Beispiel
// Play audio
//
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();
// Mute volume after 2 seconds
setTimeout(function() {
my_media.setVolume('0.0');
}, 2000);
// Set volume to 1.0 after 5 seconds
setTimeout(function() {
my_media.setVolume('1.0');
}, 5000);
}
## media.startRecord
Beginnt mit der Aufnahme einer audio-Datei.
media.startRecord();
### Unterstützte Plattformen
* Android
* iOS
* Windows Phone 7 und 8
* Windows
### Kurzes Beispiel
// Record audio
//
function recordAudio() {
var src = "myrecording.mp3";
var mediaRec = new Media(src,
// success callback
function() {
console.log("recordAudio():Audio Success");
},
// error callback
function(err) {
console.log("recordAudio():Audio Error: "+ err.code);
});
// Record audio
mediaRec.startRecord();
}
### Android Eigenarten
* Android-Geräte aufnehmen Audio im Adaptive Sprachcodecs Format. Die angegebene Datei sollte mit einer Endung *.amr* enden.
* Die Hardware-Lautstärkeregler sind bis zu den Mediendatenträger angeschlossen, während alle Medienobjekte lebendig sind. Das letzte erstelltes Medium Objekt `release()` aufgerufen hat, werden einmal die Lautstärkeregler auf ihr Standardverhalten zurückgesetzt. Die Steuerelemente werden auch auf Seitennavigation, zurückgesetzt, wenn dies alle Medienobjekte freigibt.
### iOS Macken
* iOS nur Datensätze, die Dateien des Typs *WAV* und gibt ein Fehler, wenn die Dateinamen-Erweiterung ist richtig nicht.
* Wenn ein vollständiger Pfad nicht angegeben ist, wird die Aufzeichnung in der Anwendung platziert `documents/tmp` Verzeichnis. Erreichbar über die `File` -API verwenden `LocalFileSystem.TEMPORARY` . Allen Unterverzeichnissen in Rekordzeit angegeben muss bereits vorhanden sein.
* Dateien können aufgezeichnet und spielte mit die Dokumenten URI zurück:
var myMedia = new Media("documents://beer.mp3")
### Windows-Eigenheiten
* Wenn Sie ein vollständiger Pfad nicht angegeben ist, wird die Aufnahme im AppData/Temp-Verzeichnis platziert. Erreichbar über die `Datei` API verwenden `LocalFileSystem.TEMPORARY` oder "ms-Appdata: / / / Temp /<filename>' URI.
* Allen Unterverzeichnissen in Rekordzeit angegeben muss bereits vorhanden sein.
### Tizen Macken
* Tizen Geräten unterstützt nicht.
## media.stop
Beendet die Wiedergabe einer Audiodatei.
media.stop();
### Kurzes Beispiel
// Play audio
//
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();
// Pause after 10 seconds
setTimeout(function() {
my_media.stop();
}, 10000);
}
## media.stopRecord
Stoppt die Aufnahme einer audio-Datei.
media.stopRecord();
### Unterstützte Plattformen
* Android
* iOS
* Windows Phone 7 und 8
* Windows
### Kurzes Beispiel
// Record audio
//
function recordAudio() {
var src = "myrecording.mp3";
var mediaRec = new Media(src,
// success callback
function() {
console.log("recordAudio():Audio Success");
},
// error callback
function(err) {
console.log("recordAudio():Audio Error: "+ err.code);
}
);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 seconds
setTimeout(function() {
mediaRec.stopRecord();
}, 10000);
}
### Tizen Macken
* Tizen Geräten unterstützt nicht.
## Medienfehler
Ein `MediaError`-Objekt wird an die `mediaError`-Callback-Funktion zurückgegeben, wenn ein Fehler auftritt.
### Eigenschaften
* **Code**: einer der vordefinierten Fehlercodes aufgeführt.
* **message**: eine Fehlermeldung beschreibt die Details des Fehlers.
### Konstanten
* `MediaError.MEDIA_ERR_ABORTED`= 1
* `MediaError.MEDIA_ERR_NETWORK`= 2
* `MediaError.MEDIA_ERR_DECODE`= 3
* `MediaError.MEDIA_ERR_NONE_SUPPORTED`= 4