# cordova-plugin-media Plugin daje możliwość nagrywania i odtwarzania plików audio na urządzeniu. **Uwaga**: Obecna implementacja nie stosować się do specyfikacji W3C do przechwytywania mediów i jest dostarczane jedynie dla wygody. Przyszłej realizacji będą przylegać do najnowszych specyfikacji W3C i może potępiać bieżące interfejsów API. Ten plugin definiuje globalny Konstruktor `Media`. Chociaż w globalnym zasięgu, to nie dostępne dopiero po `deviceready` imprezie. document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { console.log(Media); } ## Instalacja cordova plugin add cordova-plugin-media ## Obsługiwane platformy * Android * BlackBerry 10 * iOS * Windows Phone 7 i 8 * Tizen * Windows ## Windows Phone dziwactwa * Tylko jeden plik mogą być zagrany w tył w czasie. * Istnieją ścisłe ograniczenia na jak aplikacja współdziała z innymi mediami. Zobacz [Microsoft dokumentacji szczegóły][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]); ### Parametry * **src**: URI zawierający zawartość audio. *(DOMString)* * **mediaSuccess**: (opcjonalne) wywołania zwrotnego, który wykonuje po `Media` obiektu została zakończona bieżącej gry, rekordu lub działania stop. *(Funkcja)* * **mediaError**: (opcjonalne) wywołania zwrotnego, która wykonuje w przypadku wystąpienia błędu. *(Funkcja)* * **mediaStatus**: (opcjonalne) wywołania zwrotnego, który wykonuje wskazać zmiany statusu. *(Funkcja)* ### Stałe Poniższe stałe są zgłaszane jako parametr tylko do wywołania zwrotnego `mediaStatus`: * `Media.MEDIA_NONE`= 0; * `Media.MEDIA_STARTING`= 1; * `Media.MEDIA_RUNNING`= 2; * `Media.MEDIA_PAUSED`= 3; * `Media.MEDIA_STOPPED`= 4; ### Metody * `media.getCurrentPosition`: Zwraca bieżącej pozycji w pliku audio. * `media.getDuration`: Zwraca czas trwania pliku audio. * `media.play`: Rozpoczęcie lub wznowienie odtwarzania pliku audio. * `media.pause`: Wstrzymanie odtwarzania pliku audio. * `media.release`: Zwalnia zasoby audio system operacyjny. * `media.seekTo`: Porusza się pozycji w pliku audio. * `media.setVolume`: Ustaw głośność odtwarzania dźwięku. * `media.startRecord`: Nagrywanie pliku audio. * `media.stopRecord`: Zatrzymaj nagrywanie pliku audio. * `media.stop`: Zatrzymania odtwarzania pliku audio. ### Parametry dodatkowe ReadOnly * **stanowisko**: stanowisko w odtwarzaniu dźwięku, w kilka sekund. * Nie jest automatycznie aktualizowana podczas odtwarzania; wywołanie `getCurrentPosition` aktualizacji. * **czas**: trwania mediów, w kilka sekund. ## media.getCurrentPosition Zwraca bieżącą pozycję w pliku audio. Również aktualizacje obiektu `Media` `Position` parametr. media.getCurrentPosition(mediaSuccess, [mediaError]); ### Parametry * **mediaSuccess**: wywołania zwrotnego, który jest przekazywany bieżącej pozycji w kilka sekund. * **mediaError**: (opcjonalne) wywołanie zwrotne do wykonać, jeśli wystąpi błąd. ### Szybki przykład // 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 Zwraca czas trwania pliku audio w kilka sekund. Jeśli czas trwania jest nieznane, to zwraca wartość -1. media.getDuration(); ### Szybki przykład // 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 Wstrzymuje odtwarzanie pliku audio. media.pause(); ### Szybki przykład // 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 Rozpoczyna się lub wznawia odtwarzanie pliku audio. media.play(); ### Szybki przykład // 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(); } ### Dziwactwa iOS * **numberOfLoops**: przekazać tę opcję, aby `play` Metoda, aby określić ile razy chcesz, pliku multimedialnego do gry, np.: var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3") myMedia.play({ numberOfLoops: 2 }) * **playAudioWhenScreenIsLocked**: przekazać tę opcję, aby `play` Metoda, aby określić, czy chcesz umożliwić odtwarzanie, gdy ekran jest zablokowana. Jeśli zestaw `true` (wartość domyślna), stan przycisku Wycisz sprzętu jest ignorowane, np.: var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3") myMedia.play({ playAudioWhenScreenIsLocked : false }) * **kolejność wyszukiwania plików**: gdy tylko nazwa pliku lub ścieżka prosta pod warunkiem, iOS wyszukiwania w `www` katalogu, pliku, a następnie w aplikacji `documents/tmp` katalogu: var myMedia = new Media("audio/beer.mp3") myMedia.play() // first looks for file in www/audio/beer.mp3 then in /documents/tmp/audio/beer.mp3 ## media.release Zwalnia zasoby audio system operacyjny. Jest to szczególnie ważne dla systemu Android, ponieważ istnieje skończona ilość podstawie OpenCore wystąpień do odtwarzania multimediów. Aplikacje powinny wywoływać funkcję `wydania` dla wszelkich zasobów `mediów`, że nie jest już potrzebna. media.release(); ### Szybki przykład // Audio player // var my_media = new Media(src, onSuccess, onError); my_media.play(); my_media.stop(); my_media.release(); ## media.seekTo Ustawia bieżącej pozycji w pliku audio. media.seekTo(milliseconds); ### Parametry * **milisekund**: stanowisko ustala pozycję odtwarzania w audio, w milisekundach. ### Szybki przykład // 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); ### Jeżyna 10 dziwactwa * Nie obsługiwane na urządzeniach BlackBerry OS w wersji 5. ## media.setVolume Ustaw głośność pliku audio. media.setVolume(volume); ### Parametry * **wielkość**: wielkość ustawić odtwarzanie. Wartość musi być z zakresu od 0.0 do 1.0. ### Obsługiwane platformy * Android * iOS ### Szybki przykład // 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 Rozpoczyna nagrywanie pliku audio. media.startRecord(); ### Obsługiwane platformy * Android * iOS * Windows Phone 7 i 8 * Windows ### Szybki przykład // 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(); } ### Dziwactwa Androida * Urządzenia z systemem Android nagrywanie dźwięku w formacie Adaptive Multi-Rate. Określony plik powinien kończyć się rozszerzeniem *AMR* . * Głośności sprzętu są okablowane do wielkości nośnika, a wszelkie obiekty multimedialne są żywe. Po raz ostatni Media utworzony obiekt ma `release()` wezwał go, głośności przywrócić ich domyślne zachowanie. Kontrole są również reset nawigacji strony, jak to wszystkie obiekty multimedialne. ### Dziwactwa iOS * iOS tylko rekordy do plików typu *.wav* i zwraca błąd, jeśli nazwa pliku rozszerzenie jest nie prawidłowe. * Jeśli nie podano pełną ścieżkę, nagrywanie jest umieszczony w aplikacji `documents/tmp` katalogu. To mogą być dostępne za pośrednictwem `File` za pomocą interfejsu API `LocalFileSystem.TEMPORARY` . Każdy podkatalog określony w rekordowym czasie musi już istnieć. * Pliki mogą być zapisywane i grał z powrotem za pomocą dokumentów URI: var myMedia = new Media("documents://beer.mp3") ### Windows dziwactwa * Jeśli nie podano pełną ścieżkę, nagrywanie jest umieszczony w katalogu AppData/temp. To mogą być dostępne za pośrednictwem `Plik` Za pomocą interfejsu API `LocalFileSystem.TEMPORARY` lub "ms-appdata: temp / / / /"URI. * Każdy podkatalog określony w rekordowym czasie musi już istnieć. ### Dziwactwa Tizen * Nie obsługiwane na Tizen urządzenia. ## media.stop Zatrzymuje odtwarzanie pliku audio. media.stop(); ### Szybki przykład // 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 Zatrzymuje nagrywanie pliku audio. media.stopRecord(); ### Obsługiwane platformy * Android * iOS * Windows Phone 7 i 8 * Windows ### Szybki przykład // 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); } ### Dziwactwa Tizen * Nie obsługiwane na Tizen urządzenia. ## MediaError Gdy wystąpi błąd, funkcja wywołania zwrotnego `mediaError` zwracany jest obiekt `MediaError`. ### Właściwości * **Kod**: jeden z kodów błędów wstępnie zdefiniowanych poniżej. * **wiadomość**: komunikat o błędzie, opisując szczegóły błędu. ### Stałe * `MediaError.MEDIA_ERR_ABORTED`= 1 * `MediaError.MEDIA_ERR_NETWORK`= 2 * `MediaError.MEDIA_ERR_DECODE`= 3 * `MediaError.MEDIA_ERR_NONE_SUPPORTED`= 4