Media

설명

  • 디바이스의 오디오 파일을 재생 또는 녹음 할 수 있는 API

제약사항

  • Media API의 플랫폼별 제약사항은 다음과 같다.

Android

  • N/A

iOS

media.startRecord
  • 녹음할 파일이 존재하거나, .wav 파일을 미리 생성해야 한다. File API는 파일을 생성해주지 않는다.

환경 설정

Android

  • app/res/xml/config.xml
<plugin name="Media" value="org.apache.cordova.AudioHandler" />
  • app/AndroidManifest
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

iOS

  • App/Supporting Files/config.xml
    <feature name="Media">
        <param name="ios-package" value="CDVSound"/>
    </feature>

관련 함수

media.getCurrentPosition

  • 오디오 파일의 현재 재생 위치 값을 구한다
media.getCurrentPosition(mediaSuccess, [mediaError]);
  • Quick Example :
// 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

  • 오디오 파일의 재생 지연 시간
media.getDuration();
  • Quick Example :
 // 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();
  • Quick Example :
// 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();
  • Quick Example :
// 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();
}

media.release

  • 운영체제(OS) 혹은 메모리 내의 Media 객체에 등록된 오디오 파일을 해제한다
media.release();
  • Quick Example :
    // Audio player
    //
    var my_media = new Media(src, onSuccess, onError);

    my_media.play();
    my_media.stop();
    my_media.release();

media.seekTo

  • 오디오 파일의 재생 위치를 설정한다
media.seekTo(milliseconds);
  • Quick Example :
 // 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);

media.startRecord

  • 오디오 파일의 녹음을 시작한다
media.startRecord();
  • Quick Example :
// 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();
}

media.stop

  • 오디오 파일의 재생을 멈춘다
media.stop();
  • Quick Example :
// 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();
  • Quick Example :
// 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);
}

파라미터

mediaError

  • (선택) 에러가 발생하였을 때, 호출되는 함수. (Function)
function(error) {
    // Handle the error
}
  • Constants :
유형
MediaError.MEDIA_ERR_ABORTED
MediaError.MEDIA_ERR_NETWORK
MediaError.MEDIA_ERR_DECODE
MediaError.MEDIA_ERR_NONE_SUPPORTED

참고 자료

 
egovframework/hyb2.7/hrte/deviceapi/media.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki