<!--
# license: 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

[![Build Status](https://travis-ci.org/apache/cordova-plugin-media.svg)](https://travis-ci.org/apache/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 8
  * Windows
  * Przeglądarka

## 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](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 <application>/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

  * Urządzenia systemu Windows może używać MP3, M4A i formaty WMA rejestrowane audio. Jednak w większości przypadków nie jest możliwe wykorzystanie MP3 do nagrywania dźwięku na urządzenia *Windows Phone 8.1* , ponieważ jest enkoder MP3 [nie wysłane z Windows Phone](https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.mediaproperties.mediaencodingprofile.createmp3.aspx).

  * 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 / / / /<filename>"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