You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

509 lines
15 KiB
Markdown

8 years ago
<!--
# 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)
이 플러그인 기록 장치에 오디오 파일을 재생 하는 기능을 제공 합니다.
**참고**: 현재 구현 미디어 캡처에 대 한 W3C 사양을 준수 하지 않는 및 편의 위해서만 제공 됩니다. 미래 구현 최신 W3C 사양을 준수 한다 고 현재 Api 사용 중지 될 수 있습니다.
이 플러그인은 글로벌 `Media` 생성자를 정의 합니다.
전역 범위에 있지만 그것은 불가능까지 `deviceready` 이벤트 후.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(Media);
}
## 설치
cordova plugin add cordova-plugin-media
## 지원 되는 플랫폼
* 안 드 로이드
* 블랙베리 10
* iOS
* Windows Phone 7과 8
* Tizen
* 윈도우 8
* 윈도우
* 브라우저
## Windows Phone 단점
* 한 번에 하나의 미디어 파일을 다시 재생할 수 있습니다.
* 응용 프로그램 다른 미디어와 상호 작용 하는 방법에 대 한 엄격한 제한이 있다. [자세한 내용은 Microsoft 문서](http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh184838(v=vs.92).aspx) 를 참조 하십시오.
## 미디어
var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
### 매개 변수
* **src**: 오디오 콘텐츠를 포함 하는 URI. *(DOMString)*
* **mediaSuccess**: (선택 사항) 후 실행 되는 콜백 한 `Media` 개체 현재 재생, 기록, 또는 중지 작업을 완료 했습니다. *(기능)*
* **mediaError**: (선택 사항) 오류가 발생 하면 실행 되는 콜백. *(기능)*
* **mediaStatus**: (선택 사항) 상태 변화를 나타내기 위해 실행 하는 콜백. *(기능)*
### 상수
다음 상수는 `mediaStatus`를 유일한 매개 변수로 보고 됩니다.
* `Media.MEDIA_NONE` = 0;
* `Media.MEDIA_STARTING` = 1;
* `Media.MEDIA_RUNNING` = 2;
* `Media.MEDIA_PAUSED` = 3;
* `Media.MEDIA_STOPPED` = 4;
### 메서드
* `media.getCurrentPosition`: 오디오 파일 내에서 현재 위치를 반환합니다.
* `media.getDuration`: 오디오 파일의 기간을 반환합니다.
* `media.play`: 시작 또는 오디오 파일 재생을 다시 시작 합니다.
* `media.pause`: 오디오 파일의 재생을 일시 중지 합니다.
* `media.release`: 기본 운영 체제의 오디오 리소스를 해제합니다.
* `media.seekTo`: 오디오 파일 내에서 위치를 이동합니다.
* `media.setVolume`: 오디오 재생 볼륨을 설정 합니다.
* `media.startRecord`: 오디오 파일을 녹음을 시작 합니다.
* `media.stopRecord`: 오디오 파일 기록을 중지 합니다.
* `media.stop`: 오디오 파일 재생을 중지 합니다.
### 추가 읽기 전용 매개 변수
* **위치**: 위치 오디오 재생 시간 (초).
* 플레이; 하는 동안 자동으로 업데이트 전화 `getCurrentPosition` 를 업데이트 합니다.
* **기간**: 기간, 매체의 초.
## media.getCurrentPosition
오디오 파일 내에서 현재 위치를 반환합니다. 또한 `Media` 개체의 `position` 매개 변수를 업데이트합니다.
media.getCurrentPosition(mediaSuccess, [mediaError]);
### 매개 변수
* **mediaSuccess**: 현재 위치 (초) 전달 되는 콜백.
* **mediaError**: (선택 사항) 콜백 실행 오류가 발생 하는 경우에.
### 빠른 예제
// 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
초 오디오 파일의 기간을 반환합니다. 기간을 알 수 없는 경우-1 값을 반환 합니다.
media.getDuration();
### 빠른 예제
// 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
오디오 파일 재생을 일시 중지 합니다.
media.pause();
### 빠른 예제
// 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
시작 또는 오디오 파일 재생을 다시 시작 합니다.
media.play();
### 빠른 예제
// 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 단점
* **numberOfLoops**:이 옵션을 전달할는 `play` 시간을 재생 하려면, 예를 들어 미디어 파일의 수를 지정 하는 방법:
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
myMedia.play({ numberOfLoops: 2 })
* **playAudioWhenScreenIsLocked**:이 옵션을 전달할는 `play` 메서드는 화면이 잠겨 때 재생 수 있도록 지정 하려면. 만약 설정 `true` (기본값) 하드웨어 음소거 버튼의 상태, 예를 들면 무시 됩니다:
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
myMedia.play({ playAudioWhenScreenIsLocked : false })
* **파일 검색의 순서**: iOS에서 검색 한 파일 이름 또는 간단한 경로 제공 하는 경우는 `www` 파일을 다음 응용 프로그램의 디렉터리 `documents/tmp` 디렉터리:
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
기본 운영 체제의 오디오 리소스를 해제합니다. 이것은 유한 양의 미디어 재생용 OpenCore 인스턴스 때문에 안 드 로이드를 위해 특히 중요 하다입니다. 응용 프로그램은 더 이상 필요 없는 모든 `Media` 리소스에 대 한 `release` 함수를 호출 해야 합니다.
media.release();
### 빠른 예제
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
my_media.play();
my_media.stop();
my_media.release();
## media.seekTo
오디오 파일 내의 현재 위치를 설정합니다.
media.seekTo(milliseconds);
### 매개 변수
* **밀리초**: 밀리초에서는 오디오에서 재생 위치를 설정 하는 위치.
### 빠른 예제
// 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);
### 블랙베리 10 단점
* 블랙베리 OS 5 장치에서 지원 되지 않습니다.
## media.setVolume
오디오 파일의 볼륨을 설정 합니다.
media.setVolume(volume);
### 매개 변수
* **볼륨**: 볼륨 재생을 위한 설정. 값은 0.0에서 1.0의 범위 내에서 해야 합니다.
### 지원 되는 플랫폼
* 안 드 로이드
* iOS
### 빠른 예제
// 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
오디오 파일 녹음을 시작 합니다.
media.startRecord();
### 지원 되는 플랫폼
* 안 드 로이드
* iOS
* Windows Phone 7과 8
* 윈도우
### 빠른 예제
// 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();
}
### 안 드 로이드 단점
* 안 드 로이드 장치 적응 다중 속도 형식에서 오디오를 기록합니다. 지정 된 파일 *.amr* 확장명으로 끝나야 합니다.
* 하드웨어 볼륨 제어는 어떤 미디어 객체 살아 있는 동안 미디어 볼륨까지 유선. 일단 개체는 `release()` 호출 마지막 만든된 미디어 볼륨 컨트롤 그들의 기본 동작을 되돌립니다. 컨트롤은 또한 원래 대로 페이지 네비게이션이 모든 매체 개체를 출시.
### iOS 단점
* iOS만 레코드 형식을 *.wav* 및 반환 오류 경우 파일 이름 확장명의 파일을 수정 하지.
* 전체 경로 제공 하지 않으면 응용 프로그램의 기록 배치 됩니다 `documents/tmp` 디렉터리. 이 통해 액세스할 수 있는 `File` API를 사용 하 여 `LocalFileSystem.TEMPORARY` . 기록 시간에 지정 된 하위 디렉터리에 이미 존재 해야 합니다.
* 파일을 기록 하 고 재생할 수 있습니다 문서 URI를 사용 하 여 다시:
var myMedia = new Media("documents://beer.mp3")
### 윈도우 특수
* Windows 장치 MP3, M4A를 사용할 수 있고 WMA 형식 오디오 기록. 그러나 대부분의 경우에서 불가능 MP3 인코더는 [Windows Phone 포함 되지](https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.mediaproperties.mediaencodingprofile.createmp3.aspx) 때문에 *Windows Phone 8.1* 장치에서 오디오 녹음에 대 한 m p 3를 사용 하 여.
* 전체 경로 제공 하지 않으면 녹음 AppData/temp 디렉터리에 배치 됩니다. 이 통해 액세스할 수 있는 `파일` API를 사용 하 여 `LocalFileSystem.TEMPORARY` 또는 ' ms appdata: 온도 / / / /<filename>' URI.
* 기록 시간에 지정 된 하위 디렉터리에 이미 존재 해야 합니다.
### Tizen 특수
* Tizen 장치에서 지원 되지 않습니다.
## media.stop
오디오 파일 재생을 중지 합니다.
media.stop();
### 빠른 예제
// 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
오디오 파일 녹음을 중지 합니다.
media.stopRecord();
### 지원 되는 플랫폼
* 안 드 로이드
* iOS
* Windows Phone 7과 8
* 윈도우
### 빠른 예제
// 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 특수
* Tizen 장치에서 지원 되지 않습니다.
## MediaError
`MediaError` 개체는 오류가 발생 하면 `mediaError` 콜백 함수에 반환 됩니다.
### 속성
* **코드**: 미리 정의 된 오류 코드 중 하나가 아래에 나열 된.
* **메시지**: 오류 세부 정보를 설명 하는 오류 메시지.
### 상수
* `MediaError.MEDIA_ERR_ABORTED`= 1
* `MediaError.MEDIA_ERR_NETWORK`= 2
* `MediaError.MEDIA_ERR_DECODE`= 3
* `MediaError.MEDIA_ERR_NONE_SUPPORTED`= 4