MMedia

MMedia Framework 에 대한 필수 API 를 정의

Media API

미디어 관련된 기능들을 제공

미디어 촬영

M.media.camera(setting)

Changed in version 2.1.5.2.

Arguments
  • setting (Object) – 사진 및 동영상 촬영을 위한 설정 정보

  • setting.path (String) – 저장될 폴더명, 지정하지 않은 경우 기본값은 /media

  • setting.filename (String) – 저장될 파일명, 확장자는 제외, 값을 지정하지 않은 경우 현재시간값으로 저장

  • setting.mediaType (String) – 촬영 모드( PHOTO : 사진 / VIDEO: 영상 )

  • setting.direction (String) – 촬영 방향 (FRONT / BACK : 안드로이드 적용 불가)

  • setting.allowEdit (Boolean) – Edit 모드 사용 여부

  • setting.saveAlbum (Boolean) – 앨범 저장 여부

  • setting.overwrite (Boolean) – 덮어쓰기 여부, false 인 경우 파일명(중복수)로 적용됨

  • setting.callback (Function) – 촬영 후 호출되는 콜백 함수

M.media.callback(status, result)
Arguments
  • status (String) – 실행 결과 ( SUCCESS: 성공 코드, FAIL: 실패 코드 )

  • result (Object) – 실행 결과

  • result.path (String) – 파일 경로 (도큐먼트로 부터의 경로, 로컬 웹서버를 통해 파일 접근 가능)

  • result.filesize (int) – 파일 크기

  • result.filename (String) – 파일명

  • result.saveDate (String) – 저장 시간

  • 사진 및 동영상 촬영 화면으로 이동한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = path

  • source = path

  • name = filename

  • mode = mediaType

  • media = mediaType

  • type = mediaType

  • take = callback

  • ontake = callback

Example:

  • PHOTO 촬영

M.media.camera({
        path: "/media",
        mediaType: "PHOTO",
        callback: function(status, result, option) {
                if (status == 'SUCCESS') {
                        var photo_path = result.fullpath;
                        var photo_name = result.name;
                }
        }
});
  • PHOTO 촬영 후 앨범 저장

M.media.camera({
        path: "/media",
        mediaType: "PHOTO",
        saveAlbum: true,
        callback: function(status, result, option) {
                if (status == 'SUCCESS') {
                        var photo_path = result.fullpath;
                        var photo_name = result.name;
                }
        }
});
  • VIDEO 촬영

M.media.camera({
        mediaType: "VIDEO",
        path: "/media",
        callback: function(status, result, option) {
                if (status == 'SUCCESS') {
                        var photo_path = result.fullpath;
                        var photo_name = result.name;
                }
         }
});

앨범으로 미디어 파일 저장

M.media.album(setting)

Changed in version 2.1.5.2.

Arguments
  • setting (Object) – 설정 정보

  • setting.path (String) – 앨범으로 저장할 파일 명

  • setting.callback (Function) – 결과 콜백 함수

M.media.callback(status, result)
Arguments
  • status (String) – 실행 결과 ( SUCCESS: 성공 코드, FAIL: 실패 코드 )

  • result (Object) – 실행 결과

  • result.path (String) – 파일 경로 (도큐먼트로 부터의 경로, 로컬 웹서버를 통해 파일 접근 가능)

  • result.name (String) – 파일의 파일 이름

  • 미디어 폴더로 복사한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = path

  • source = path

  • finish = callback

  • onfinish = callback

Example:

M.media.album({
        path: "/media/sample.jpg",
        onfinish: function(status, result, option) {
                if (status == 'SUCCESS') {
                        var photo_path = result.path;
                        var photo_name = result.name;
                }
        }
});

미디어 정보

M.media.info(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – 미디어 정보를 가져오기 위한 설정 정보

  • setting.path (String) – 정보를 가져오려는 디랙토리 경로

  • setting.mediaType (String) – 미디어 타입 ( PHOTO: 사진, VIDEO: 동영상, AUDIO: 오디오 )

  • setting.callback (Function) – 미디어 정보를 반환하는 콜백 함수

M.media.callback(status, result)
Arguments
  • status (String) – 실행 결과 ( SUCCESS: 성공 코드, FAIL: 실패 코드 )

  • result (Object) – 실행 결과

  • result.dirs (Array) – 디렉토리 정보

  • result.files (Array) – 파일들 정보

  • 미디어 정보를 가져온다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = path

  • source = path

  • load = callback

  • onload = callback

Example:

  • 미디어 정보 (PHOTO)

M.media.info({
        path: '/',
        mediaType: 'PHOTO',
        callback: function( status, result ) {
                console.log( status, result );
        }
});
  • 미디어 정보 (VIDEO)

M.media.info({
        path: '/',
        mediaType: 'VIDEO',
        callback: function( status, result ) {
                console.log( status, result );
        }
});

공통 미디어 정보

M.media.picker(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – 공통 미디어 정보를 가져오기 위한 설정 정보

  • setting.mode (String) – 선택 타입 ( SINGLE: 하나의 미디어 파일만 선택 가능, MULTI: 여러장 미디어 파일들을 선택 가능(media 타입이 PHOTO 일때만 지원함) )

  • setting.mediaType (String) – 미디어 타입 ( PHOTO: 사진, VIDEO: 동영상, AUDIO: 오디오, ALL : 갤러리 )

  • setting.path (String) – 미디어 경로

  • setting.maxCount (int) – 최대 선택수 (기본값:0, 0인경우 제한없음)

  • setting.column (int) – 미디어 선택 화면 컬럼 수

  • setting.detail (Bool) – 상세 화면 모드

  • setting.zoom (Bool) – 줌 모드

  • setting.callback (Function) – 공통 미디어 정보를 반환하는 콜백 함수

M.media.callback(status, result)
Arguments
  • status (String) – 실행 결과 ( SUCCESS: 성공 코드, FAIL: 실패 코드 )

  • result (Object) – 실행 결과

  • result.path (String) – 파일 경로 (도큐먼트로 부터의 경로, 로컬 웹서버를 통해 파일 접근 가능)

  • result.size (int) – 파일 크기

  • result.saveDate (String) – 저장 시간

  • result.name (String) – 파일의 파일 이름

  • result.orientation (String) – 방향( 0, 90, 180, 270 )

  • 공통 미디어(사진, 동영상)를 가져오는 화면으로 이동한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = path

  • source = path

  • media = mediaType

  • type = mediaType

  • choose = mode

  • choice = mode

  • select = callback

  • onselect = callback

Example:

  • 사진 가져오기

M.media.picker({
        mode: "SINGLE",
        media: "PHOTO",
        path: "/media",
        column: 3,
        callback: function( status, result ) {
                console.log( status + ", " + JSON.stringify(result) );
        }
});
  • 동영상 가져오기

M.media.picker({
        mode: "SINGLE",
        media: "VIDEO",
        path: "/media",
        callback: function( status, result ) {
                console.log( status + ", " + JSON.stringify(result) );
        }
});
M.media.library(setting)

Deprecated since version 2.1.1.1.

  • M.media.picker 로 대체, 옵션은 동일

공통 미디어 삭제

M.media.removelibrary(setting)

Changed in version 2.0.0.

Arguments
  • setting.mediaType (String) – 미디어 타입 ( PHOTO: 사진, VIDEO: 동영상, AUDIO: 오디오 )

  • setting.path (String) – 미디어 경로

  • setting.callback (Function) – 공통 미디어 정보를 반환하는 콜백 함수

M.media.callback(status, result)
Arguments
  • status (String) – 실행 결과 ( SUCCESS: 성공 코드, FAIL: 실패 코드 )

  • result (Object) – 실행 결과

  • 공통 미디어(사진, 동영상)를 삭제한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = path

  • source = path

  • media = mediaType

  • type = mediaType

  • choose = mode

  • choice = mode

  • select = callback

  • onselect = callback

Example:

  • Media 파일 삭제 (PHOTO)

M.media.info({
        media: "PHOTO",
        path: "/media",
}, function(status, result) {
        if ( status == 'SUCCESS' ) {
                console.log(result);

                var removeFiles = [];
                for ( var idx in result.files ) {
                        var fileInfo = result.files[idx];
                        removeFiles.push( fileInfo.path )
                }

                M.media.removeLibrary({
                        files: removeFiles,
                        media: "PHOTO"
                }, function(status, setting) {
                        M.tool.log(status);
                        alert(status);
                });
        }
        else {
                alert(status);
        }
});
  • Media 파일 삭제 (VIDEO)

M.media.info({
        media: "VIDEO",
        path: "/media",
}, function(status, result) {
        if ( status == 'SUCCESS' ) {
                console.log(result);

                var removeFiles = [];
                for ( var idx in result.files ) {
                        var fileInfo = result.files[idx];
                        removeFiles.push( fileInfo.path )
                }

                M.media.removeLibrary({
                        files: removeFiles,
                        media: "VIDEO"
                }, function(status, setting) {
                        M.tool.log(status);
                        alert(status);
                });
        }
        else {
                alert(status);
        }
});

동영상 플레이어

M.media.play(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – 영상 재생을 위한 설정 정보

  • setting.path (String) – 재생할 영상 URL

  • setting.playType (String) – URL 타입 ( NATIVE: 내장, 외장 메모리에 있는 URL 또는 Remote URL 처럼 직접 재생이 가능한경우, WEB: youtube URL처럼 직접 재생이 가능하지 않은 URL )

  • 영상을 재생하는 화면으로 이동한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • url = path

  • alias = path

  • source = path

  • media = playType

Example:

  • 동영상 Play (WEB)

M.media.play({
        path: "http://www.w3schools.com/html/mov_bbb.mp4",
        playType: "WEB"
});
  • 동영상 Play (YOUTUBE)

M.media.play({
        path: "https://youtu.be/RgKAFK5djSk",
        playType: "YOUTUBE"
});
  • 동영상 촬영 후 Play

M.media.camera({
        mode: "VIDEO",
        path: "/media",
}, function(status, result, option) {
        if (status == 'SUCCESS') {
                var video_path = result.path;
                var video_name = result.name;
                var video_thumb = video_name.substr(0, video_name.lastIndexOf('.')) + ".png";

                M.media.play(video_path, 'NATIVE');
        }
});

녹음

M.media.record(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – 파일 생성을 위한 설정 정보

  • setting.path (String) – 녹취 파일이 저장될 경로 (폴더)

  • setting.filename (String) – 녹취 파일 이름 (확장자 미포함), 없는경우 현재 시간으로 파일명을 만든다.

  • setting.overwrite (Bool) – 덮어 쓰기 여부

  • setting.callback (Function) – 녹취 결과 콜백 함수

M.media.callback(status, result)
Arguments
  • status (String) – 실행 결과 코드 ( SUCCESS: 성공 코드, FAIL: 실패 코드 )

  • result (Object) – 실행 결과

  • result.path (String) – 파일 경로 (도큐먼트로 부터의 경로, 로컬 웹서버를 통해 파일 접근 가능)

  • result.size (int) – 파일 크기

  • result.saveDate (String) – 저장 시간

  • result.name (String) – 파일의 파일 이름

  • 녹취 기능 화면으로 이동한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = path

  • source = path

  • name = filename

  • finish = callback

  • onfinish = callback

Example:

  • 녹음하기

M.media.record({
        path: '/voiceList',
        filename: "sample",
        callback: function(status, result) {
                console.log( status + ", " + JSON.stringify(result) );

        }
});
  • 녹음한 후 파일 재생하기

M.media.record({
        path: '/voiceList',
        filename: "sample",
        callback: function(status, result) {
                M.media.info({
                        path: '/voiceList',
                        mediaType: 'AUDIO',
                        callback: function( status, result ) {
                                var voiceSource = result.files[0].fullpath; //녹음 리스트 중 첫번째 파일
                                var audio = document.createElement("audio");

                                audio.autoplay = true;
                                audio.load();
                                audio.addEventListener("load", function() {
                                        audio.play();
                                }, true);
                                audio.src = voiceSource;
                        }
                });
        }
});

미디어 정보 추출

M.media.get(path)
Arguments
  • path (String) – 설정 옵션

Returns

미디어 정보

Return type

Object

Key

Type Description

status

String 미디어 출력 상태 (SUCCESS or FAIL)

error

String 오류 내용 (오류가 있을때만 키 존재)

path

String 파일 경로 (도큐먼트로 부터의 경로, 로컬 웹서버를 통해 파일 접근 가능)

alias

String Scheme 경로 (doc:// 도큐먼트, app:// 번들리소스, media:// 미디어라이브러리, ext:// 외부저장장치로 부터의 경로)

source

String 절대 경로 (Native 에서만 접근 가능)

filename

String 파일명

filesize

Int 파일용량

duration

Float 비디오인경우 비디오 재생시간(초)

orientation

Int 회전 상태 (0, 90, 180, 270)

pixelWidth

Int 미디어 실제 너비

pixelHeight

Int 미디어 실제 높이

format

String 미디어 파일 포맷 (JPG, PNG, “”), 현재는 사진만 포맷값 추출 가능

type

String 미디어 타입 (PHOTO, VIDEO, UNKNOWN)

created

String 미디어 생성 시간 (DateFormat: yyyyMMddHHmmss)

updated

String 미디어가 마지막으로 수정된 시간 (DateFormat: yyyyMMddHHmmss)

  • 경로는 항상 파일 경로만 적용 가능

Example:

// 파일 다운로드 후 미디어 정보확인
M.net.http.download({
        url: 'https://s3-ap-northeast-1.amazonaws.com/morpheus-storage/sample/sample.jpg',
        directory: '/download/',
        indicator: true,
        overwrite: true,
        progress: function(total, current) {},
        finish: function( statusCode, header, fileInfo, status, error ) {
                console.log( statusCode, header, fileInfo, status, error );

                if ( status !== "SUCCESS" ) {
                        console.error( error );
                        return;
                }

                var mediaInfo = M.media.get(fileInfo.path);
                M.tool.log( mediaInfo );
                alert( JSON.stringify(mediaInfo) );
        }
});
M.media.get(setting)
Arguments
  • setting (Object) – 설정 옵션

  • setting.path (String) – 해당 미디어 경로

** 결과는 위와 동일

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = path

  • source = path

Example:

var mediaInfo = M.media.get({
        path: '/download/sample.jpg'
});
M.tool.log( mediaInfo );
alert( JSON.stringify(mediaInfo) );

사진 최적화

M.media.optimize(setting)
Arguments
  • setting (Object) – 설정 옵션

  • setting.source (String) – 가져올 미디어 파일 경로

  • setting.destination (String) – 출력할 미디어 파일 경로

  • setting.overwrite (Bool) – 파일 덮어 쓰기 여부, false 가 기본값, 파일 존재시 파일명(숫자) 형태로 생성

  • setting.dimension (Object) – 출력할 이미지 크기( width:Int, height:Int} ), 설정하지 않으면 실제 Pixel 크기 기준으로 생성

  • setting.format (String) – 파일 포맷 (PNG, JPG), 기본값 PNG

  • setting.quality (Float) – 파일 포맷이 JPG 인경우에만 품질 설정, 기본값은 1.0

  • setting.callback (Function) – 파일 생성 후 호출되는 콜백 함수

M.media.callback(result)
Arguments
  • result (Object) – 생성 결과값

  • result.status (String) – 결과 코드 {SUCCESS:성공 코드,FAIL:실패 코드,ERROR:실패 코드}

  • result.path (String) – 파일 경로 (도큐먼트로 부터의 경로, 로컬 웹서버를 통해 파일 접근 가능)

  • result.alias (String) – Scheme 경로 (doc:// 도큐먼트, app:// 번들리소스, media:// 미디어라이브러리, ext:// 외부저장장치로 부터의 경로)

  • result.source (String) – 절대 경로 (Native 에서만 접근 가능)

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = source

  • source = source

Example:

// 너비크기를 200으로, 파일 포맷은 기본값(PNG)로 변환하여 이미지 파일 생성
M.media.optimize({
        'source': '/download/sample.jpg',
        'destination': '/download/sample.optimized.png',
        'dimension': { width:200 },
        'callback': function( result ) {
                if ( result.error ) {
                        console.log( result.error );
                        return;
                }

                console.log( M.media.get( result.path ) );
        }
});

// JPEG 의 해상도를 조정하여 이미지 용랑 조정
M.media.optimize({
        'source': '/download/sample.jpg',
        'destination': '/download/sample.optimized.jpg',
        'overwrite': true,
        'quality': 0.5, // Only JPG
        'format': 'JPG',
        'callback': function( result ) {
                if ( result.error ) {
                        console.log( result.error );
                        return;
                }

                console.log( M.media.get( result.path ) );
        }
});

사진 자르기

M.media.crop(setting)
Arguments
  • setting (Object) – 설정 옵션

  • setting.source (String) – 가져올 미디어 파일 경로

  • setting.destination (String) – 출력할 미디어 파일 경로

  • setting.overwrite (Bool) – 파일 덮어 쓰기 여부, false 가 기본값, 파일 존재시 파일명(숫자) 형태로 생성

  • setting.dimension (Object) – 출력할 이미지 크기( width:Int, height:Int} ), 설정하지 않으면 실제 Pixel 크기 기준으로 생성, 값을 설정한 경우에는 해당값의 비율로 crop size 가 고정

  • setting.format (String) – 파일 포맷 (PNG, JPG), 기본값 PNG

  • setting.quality (Float) – 파일 포맷이 JPG 인경우에만 품질 설정, 기본값은 1.0

  • setting.title (String) – 상단 네비게이션 타이틀 정의, 설정하지 않으면 Bundle 내 다국어로 적용

  • setting.doneButtonTitle (String) – 취소 버튼 타이틀 정의, 설정하지 않으면 Bundle 내 다국어로 적용

  • setting.cancelButtonTitle (String) – 완료 버튼 타이틀 정의, 설정하지 않으면 Bundle 내 다국어로 적용

  • setting.callback (Function) – 파일 생성 후 호출되는 콜백 함수

M.media.callback(result)
Arguments
  • result (Object) – 생성 결과값

  • result.status (String) – 결과 코드 {SUCCESS:성공 코드,FAIL:실패 코드,ERROR:실패 코드}

  • result.path (String) – 파일 경로 (도큐먼트로 부터의 경로, 로컬 웹서버를 통해 파일 접근 가능)

  • result.alias (String) – Scheme 경로 (doc:// 도큐먼트, app:// 번들리소스, media:// 미디어라이브러리, ext:// 외부저장장치로 부터의 경로)

  • result.source (String) – 절대 경로 (Native 에서만 접근 가능)

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • alias = source

  • source = source

Example:

// 너비크기를 200으로, 파일 포맷은 기본값(PNG)로 변환하여 이미지 파일 생성
M.media.crop({
        'source': '/download/sample.jpg',
        'destination': '/download/sample.croped.jpg',
        'dimension': { width:200, height:200 },
        'optimize': 0.8, // Only JPG
        'format': 'JPG',
        'callback': function( result ) {
                if ( result.error ) {
                        console.log( result.error );
                        return;
                }

                console.log( M.media.get( result.path ) );
        }
});