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
Questo plugin consente di registrare e riprodurre i file audio su un dispositivo.
**Nota**: l'implementazione attuale non aderisce a una specifica del W3C per l'acquisizione di mezzi e viene fornito solo per comodità. Una futura realizzazione aderirà alla specifica W3C più recente e può deprecare le API corrente.
Questo plugin definisce un costruttore `Media` globale.
Anche se in ambito globale, non è disponibile fino a dopo l'evento `deviceready`.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(Media);
}
## Installazione
cordova plugin add cordova-plugin-media
## Piattaforme supportate
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 e 8
* Tizen
* Windows
## Stranezze di Windows Phone
* File sola multimediale può essere riprodotti in un momento.
* Ci sono severe restrizioni su come l'applicazione interagisce con altri media. Vedere la [documentazione di Microsoft per maggiori dettagli][1].
[1]: http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh184838(v=vs.92).aspx
## Media
var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
### Parametri
* **src**: un URI contenente il contenuto audio. *(DOMString)*
* **mediaSuccess**: (facoltativo) il callback che viene eseguito dopo un `Media` oggetto ha completato il gioco corrente, record o interrompere l'azione. *(Funzione)*
* **errore mediaError**: (facoltativo) il callback che viene eseguito se si verifica un errore. *(Funzione)*
* **mediaStatus**: (facoltativo) il callback che viene eseguito per indicare i cambiamenti di stato. *(Funzione)*
### Costanti
Costanti sono segnalate come unico parametro al metodo di callback `mediaStatus`:
* `Media.MEDIA_NONE` = 0;
* `Media.MEDIA_STARTING` = 1;
* `Media.MEDIA_RUNNING` = 2;
* `Media.MEDIA_PAUSED` = 3;
* `Media.MEDIA_STOPPED` = 4;
### Metodi
* `media.getCurrentPosition`: Restituisce la posizione corrente all'interno di un file audio.
* `media.getDuration`: Restituisce la durata di un file audio.
* `media.play`: Iniziare o riprendere la riproduzione di un file audio.
* `media.pause`: Pausa la riproduzione di un file audio.
* `media.release`: Libera risorse audio del sistema operativo sottostante.
* `media.seekTo`: Sposta la posizione all'interno del file audio.
* `media.setVolume`: Impostare il volume per la riproduzione audio.
* `media.startRecord`: Iniziare a registrare un file audio.
* `media.stopRecord`: Interrompere la registrazione di un file audio.
* `media.stop`: Interrompere la riproduzione di un file audio.
### Parametri supplementari ReadOnly
* **posizione**: la posizione all'interno della riproduzione audio, in pochi secondi.
* Non aggiornate automaticamente durante il gioco; chiamare `getCurrentPosition` per l'aggiornamento.
* **durata**: la durata dei media, in secondi.
## media.getCurrentPosition
Restituisce la posizione corrente all'interno di un file audio. Aggiorna anche il parametro di `position` dell'oggetto `Media`.
media.getCurrentPosition(mediaSuccess, [mediaError]);
### Parametri
* **mediaSuccess**: il callback passato la posizione corrente in pochi secondi.
* **errore mediaError**: (facoltativo) il callback da eseguire se si verifica un errore.
### Esempio rapido
// 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
Restituisce la durata di un file audio in secondi. Se la durata è sconosciuta, essa restituisce un valore di -1.
media.getDuration();
### Esempio rapido
// 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
Sospende la riproduzione di un file audio.
media.pause();
### Esempio rapido
// 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
Avvia o riprende la riproduzione di un file audio.
media.play();
### Esempio rapido
// 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 stranezze
* **numberOfLoops**: passare questa opzione per il `play` metodo per specificare il numero di volte desiderato file multimediale per riprodurre, ad esempio:
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
myMedia.play({ numberOfLoops: 2 })
* **playAudioWhenScreenIsLocked**: questa opzione per passare il `play` metodo per specificare se si desidera consentire la riproduzione quando lo schermo è bloccato. Se impostato su `true` (il valore predefinito), viene ignorato lo stato del pulsante mute hardware, ad esempio:
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
myMedia.play({ playAudioWhenScreenIsLocked : false })
* **ordine di ricerca di file**: quando viene fornito solo un nome file o percorso semplice, cerca in iOS il `www` directory per il file, quindi l'applicazione `documents/tmp` directory:
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
Rilascia le risorse audio del sistema operativo sottostante. Ciò è particolarmente importante per Android, dato che ci sono una quantità finita di OpenCore istanze per la riproduzione multimediale. Le applicazioni devono chiamare la funzione di `release` qualsiasi risorsa `Media` non è più necessario.
media.release();
### Esempio rapido
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
my_media.play();
my_media.stop();
my_media.release();
## media.seekTo
Imposta la posizione corrente all'interno di un file audio.
media.seekTo(milliseconds);
### Parametri
* **millisecondi**: posizione per impostare la posizione di riproduzione all'interno l'audio, in millisecondi.
### Esempio rapido
// 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 capricci
* Non è supportato sui dispositivi BlackBerry OS 5.
## media.setVolume
Impostare il volume per un file audio.
media.setVolume(volume);
### Parametri
* **volume**: il volume impostato per la riproduzione. Il valore deve essere all'interno della gamma di 0,0 e 1,0.
### Piattaforme supportate
* Android
* iOS
### Esempio rapido
// 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
Avvia la registrazione di un file audio.
media.startRecord();
### Piattaforme supportate
* Android
* iOS
* Windows Phone 7 e 8
* Windows
### Esempio rapido
// 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();
}
### Stranezze Android
* Dispositivi Android registrano audio in formato Adaptive Multi-Rate. Il file specificato deve terminare con l'estensione ** .
* I controlli di volume di hardware sono cablati a volume media mentre eventuali oggetti multimediali sono vivi. Una volta l'ultimi Media creati oggetto ha `release()` chiamato su di esso, i controlli di volume di tornare alla loro comportamento predefinito. I controlli vengono reimpostati anche sulla pagina di navigazione, come questo rilascia tutti gli oggetti multimediali.
### iOS stranezze
* iOS solo i record per i file di tipo *WAV* e restituisce un errore se il file di nome estensione è non corretto.
* Se non è specificato un percorso completo, la registrazione viene inserita nell'applicazione `documents/tmp` directory. Questo si può accedere tramite il `File` API utilizzando `LocalFileSystem.TEMPORARY` . Deve esistere alcuna sottodirectory specificate a tempo di record.
* I file possono essere registrati e giocati indietro usando i documenti URI:
var myMedia = new Media("documents://beer.mp3")
### Stranezze di Windows
* Se non è specificato un percorso completo, la registrazione viene inserita nella directory AppData/temp. Questo si può accedere tramite il `File` Utilizzando API `LocalFileSystem.TEMPORARY` o ' ms-appdata: / / temp /<filename>' URI.
* Deve esistere alcuna sottodirectory specificate a tempo di record.
### Tizen stranezze
* Tizen periferiche non supportano.
## media.stop
Interrompe la riproduzione di un file audio.
media.stop();
### Esempio rapido
// 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
Smette di registrare un file audio.
media.stopRecord();
### Piattaforme supportate
* Android
* iOS
* Windows Phone 7 e 8
* Windows
### Esempio rapido
// 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 stranezze
* Tizen periferiche non supportano.
## Errore MediaError
Un oggetto ` MediaError` viene restituito alla funzione di callback ` mediaError` quando si verifica un errore.
### Proprietà
* **codice**: uno dei codici di errore predefiniti elencati di seguito.
* **messaggio**: un messaggio di errore che descrive i dettagli dell'errore.
### Costanti
* `MediaError.MEDIA_ERR_ABORTED`= 1
* `MediaError.MEDIA_ERR_NETWORK`= 2
* `MediaError.MEDIA_ERR_DECODE`= 3
* `MediaError.MEDIA_ERR_NONE_SUPPORTED`= 4