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