<!---
    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

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 <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

*   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
