Media

Media

Media オブジェクトは、デバイス上でのオーディオファイルの再生や録音などといった機能をサポートします。

var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);

注意: 現在の実装はメディアキャプチャーに関する W3C の仕様を満たしていません。利便性のためだけに提供されています。将来的には最新の W3C の仕様に合わせるとともに、現在の API を廃止することも検討されています。

パラメーター

メソッド

追加の読み取り専用パラメーター

サポートされているプラットフォーム

パーミッション

Android

app/res/xml/plugins.xml

<plugin name="Media" value="org.apache.cordova.AudioHandler" />

app/AndroidManifest.xml

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

Bada

manifest.xml

<Privilege>
    <Name>RECORDING</Name>
</Privilege>

BlackBerry WebWorks

www/plugins.xml

<plugin name="Capture" value="org.apache.cordova.media.MediaCapture" />

iOS

App/Supporting Files/Cordova.plist

<key>Plugins</key>
<dict>
    <key>Media</key>
    <string>CDVSound</string>
</dict>

webOS

パーミッションの設定は必要ありません。

Windows Phone

Properties/WPAppManifest.xml

<Capabilities>
    <Capability Name="ID_CAP_MEDIALIB" />
    <Capability Name="ID_CAP_MICROPHONE" />
    <Capability Name="ID_HW_FRONTCAMERA" />
    <Capability Name="ID_CAP_ISV_CAMERA" />
    <Capability Name="ID_CAP_CAMERA" />
</Capabilities>

参照: Application Manifest for Windows Phone


media.getCurrentPosition

オーディオファイル内の現在の再生位置を返します。

media.getCurrentPosition(mediaSuccess, [mediaError]);

パラメーター

概要

media.getCurrentPosition 関数は Media オブジェクトのオーディオファイルの現在再生位置を返す非同期関数です。 Media オブジェクト内の position パラメーターの値も更新します。

サポートされているプラットフォーム

使用例

// オーディオプレイヤー
//
var my_media = new Media(src, onSuccess, onError);

// メディアの再生位置を一秒ごとに更新
var mediaTimer = setInterval(function() {
        // 再生位置を取得
        my_media.getCurrentPosition(
            // 呼び出し成功
            function(position) {
            if (position > -1) {
            console.log((position) + " sec");
            }
            },
            // 呼び出し失敗
            function(e) {
                console.log("Error getting pos=" + e);
            }
        );
    }, 1000);

詳細な使用例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                  "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>メディアの使用例</title>

        <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Cordova の読み込み完了まで待機
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova 準備完了
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // オーディオプレイヤー
        //
        var my_media = null;
        var mediaTimer = null;

        // オーディオ再生
        //
        function playAudio(src) {
            // src から Media オブジェクトを作成
            my_media = new Media(src, onSuccess, onError);

            // オーディオ再生
            my_media.play();

            // my_media の再生位置を一秒ごとに更新
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // my_media の再生位置を取得
                    my_media.getCurrentPosition(
                        // 呼び出し成功
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // 呼び出し失敗
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // オーディオ一時停止
        //
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // オーディオ停止
        //
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // 成功時のコールバック関数
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }

        // エラー時のコールバック関数
        //
        function onError(error) {
            alert('コード: '        + error.code    + '\n' +
                  'メッセージ: '    + error.message + '\n');
        }

        // 再生位置をセット
        //
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">再生</a>
        <a href="#" class="btn large" onclick="pauseAudio();">一時停止</a>
        <a href="#" class="btn large" onclick="stopAudio();">停止</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.getDuration

オーディオファイルの再生時間を返します。

media.getDuration();

概要

media.getDuration 関数は秒単位でオーディオファイルの再生時間を返す同期関数です。再生時間が不明な場合は、-1が返されます。

サポートされているプラットフォーム

使用例

    // オーディオプレイヤー
    //
    var my_media = new Media(src, onSuccess, onError);

    // 再生時間を取得
    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);

詳細な使用例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>メディアの使用例</title>

        <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Cordova の読み込み完了まで待機
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova 準備完了
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // オーディオプレイヤー
        //
        var my_media = null;
        var mediaTimer = null;

        // オーディオ再生
        //
        function playAudio(src) {
            // src から Media オブジェクトを作成
            my_media = new Media(src, onSuccess, onError);

            // オーディオ再生
            my_media.play();

            // my_media の再生位置を一秒ごとに更新
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // my_media の再生位置を取得
                    my_media.getCurrentPosition(
                        // 呼び出し成功
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // 呼び出し失敗
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // オーディオ一時停止
        //
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // オーディオ停止
        //
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // 成功時のコールバック関数
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }

        // エラー時のコールバック関数
        //
        function onError(error) {
            alert('コード: '        + error.code    + '\n' +
                  'メッセージ: '    + error.message + '\n');
        }

        // 再生位置をセット
        //
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">再生</a>
        <a href="#" class="btn large" onclick="pauseAudio();">一時停止</a>
        <a href="#" class="btn large" onclick="stopAudio();">停止</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.pause

オーディオファイルを一時停止します。

media.pause();

概要

media.pause 関数はオーディオファイルを一時停止させる同期関数です。

サポートされているプラットフォーム

使用例

// オーディオ再生
//
function playAudio(url) {
    // URL のオーディオファイルを再生
    var my_media = new Media(url,
        // 呼び出し成功
        function() {
            console.log("playAudio():Audio Success");
        },
        // 呼び出し失敗
        function(err) {
            console.log("playAudio():Audio Error: "+err);
    });

    // オーディオ再生
    my_media.play();

    // 10秒後に一時停止
    setTimeout(function() {
        media.pause();
    }, 10000);
}

詳細な使用例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>メディアの使用例</title>

        <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Cordova の読み込み完了まで待機
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova 準備完了
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // オーディオプレイヤー
        //
        var my_media = null;
        var mediaTimer = null;

        // オーディオ再生
        //
        function playAudio(src) {
            // src から Media オブジェクトを作成
            my_media = new Media(src, onSuccess, onError);

            // オーディオ再生
            my_media.play();

            // my_media の再生位置を一秒ごとに更新
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // my_media の再生位置を取得
                    my_media.getCurrentPosition(
                        // 呼び出し成功
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // 呼び出し失敗
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // オーディオ一時停止
        //
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // オーディオ停止
        //
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // 成功時のコールバック関数
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }

        // エラー時のコールバック関数 
        //
        function onError(error) {
            alert('コード: '        + error.code    + '\n' +
                  'メッセージ: '    + error.message + '\n');
        }

        // 再生位置をセット
        //
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">再生</a>
        <a href="#" class="btn large" onclick="pauseAudio();">一時停止</a>
        <a href="#" class="btn large" onclick="stopAudio();">停止</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.play

オーディオファイルを再生または再開します。

media.play();

概要

media.play 関数はオーディオファイルを再生または再開させる同期関数です。

サポートされているプラットフォーム

使用例

// オーディオ再生
//
function playAudio(url) {
    // URL のオーディオファイルを再生
    var my_media = new Media(url,
        // 呼び出し成功
        function() {
            console.log("playAudio():Audio Success");
        },
        // 呼び出し失敗
        function(err) {
            console.log("playAudio():Audio Error: "+err);
    });

    // オーディオ再生
    my_media.play();
}

詳細な使用例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>メディアの使用例</title>

        <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Cordova の読み込み完了まで待機
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova 準備完了
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // オーディオプレイヤー
        //
        var my_media = null;
        var mediaTimer = null;

        // オーディオ再生
        //
        function playAudio(src) {
            if (my_media == null) {
                // src から Media オブジェクトを作成
                my_media = new Media(src, onSuccess, onError);
            } // else 現在のオーディオを再生
            // オーディオ再生
            my_media.play();

            // my_media の再生位置を一秒ごとに更新
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // my_media の再生位置を取得
                    my_media.getCurrentPosition(
                        // 呼び出し成功
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // 呼び出し失敗
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // オーディオ一時停止
        //
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // オーディオ停止
        //
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // 成功時のコールバック関数
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }

        // エラー時のコールバック関数
        //
        function onError(error) {
            alert('コード: '        + error.code    + '\n' +
                  'メッセージ: '    + error.message + '\n');
        }

        // 再生位置をセット
        //
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">再生</a>
        <a href="#" class="btn large" onclick="pauseAudio();">一時停止</a>
        <a href="#" class="btn large" onclick="stopAudio();">停止</a>
        <p id="audio_position"></p>
      </body>
    </html>

BlackBerry WebWorks に関する注意点

iOS に関する注意点


media.release

OS のオーディオリソースを開放します。

media.release();

概要

media.release 関数は OS のオーディオリソースを開放する同期関数です。 Android ではメディア再生のための OpenCore インスタンスが有限のため、この関数は特に Android にとって重要な関数です。 メディアリソースが不要になった場合には、 'release' 関数を使用してください。

サポートされているプラットフォーム

使用例

// オーディオプレイヤー
//
var my_media = new Media(src, onSuccess, onError);

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

詳細な使用例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>メディアの使用例</title>

        <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Cordova の読み込み完了まで待機
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova 準備完了
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // オーディオプレイヤー
        //
        var my_media = null;
        var mediaTimer = null;

        // オーディオ再生
        //
        function playAudio(src) {
            // src から Media オブジェクトを作成
            my_media = new Media(src, onSuccess, onError);

            // オーディオ再生
            my_media.play();

            // my_media の再生位置を一秒ごとに更新
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // my_media の再生位置を取得
                    my_media.getCurrentPosition(
                        // 呼び出し成功
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // 呼び出し失敗
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // オーディオ一時停止
        //
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // オーディオ停止
        //
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // 成功時のコールバック関数
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }

        // エラー時のコールバック関数
        //
        function onError(error) {
            alert('コード: '        + error.code    + '\n' +
                  'メッセージ: '    + error.message + '\n');
        }

        // 再生位置をセット
        //
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">再生</a>
        <a href="#" class="btn large" onclick="pauseAudio();">一時停止</a>
        <a href="#" class="btn large" onclick="stopAudio();">停止</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.seekTo

オーディオファイル中の再生位置を動かします。

media.seekTo(milliseconds);

パラメーター

概要

media.seekTo 関数は Media オブジェクトのオーディオファイルの現在再生位置を更新する非同期関数です。 Media オブジェクト内の position パラメーターの値も更新します。

サポートされているプラットフォーム

使用例

    // オーディオプレイヤー
    //
    var my_media = new Media(src, onSuccess, onError);
    my_media.play();
    // 5秒後に、10秒の位置まで移動
    setTimeout(function() {
        my_media.seekTo(10000);
    }, 5000);

Full Example

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                  "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>メディアの使用例</title>

        <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Cordova の読み込み完了まで待機
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova 準備完了
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // オーディオプレイヤー
        //
        var my_media = null;
        var mediaTimer = null;

        // オーディオ再生
        //
        function playAudio(src) {
            // src から Media オブジェクトを作成
            my_media = new Media(src, onSuccess, onError);

            // オーディオ再生
            my_media.play();
            // メディアの再生位置を一秒ごとに更新
            mediaTimer = setInterval(function() {
                // 再生位置を取得
                my_media.getCurrentPosition(
                    // 呼び出し成功
                    function(position) {
                        if (position > -1) {
                            setAudioPosition(position + " sec");
                        }
                    },
                    // 呼び出し失敗
                    function(e) {
                        console.log("Error getting pos=" + e);
                    }
                );
            }, 1000);
            // 5秒後に、10秒の位置まで移動
            setTimeout(function() {
                my_media.seekTo(10000);
            }, 5000);
        }

        // オーディオ停止
        //
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // 成功時のコールバック関数
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }

        // エラー時のコールバック関数
        //
        function onError(error) {
            alert('コード: '        + error.code    + '\n' +
                  'メッセージ: '    + error.message + '\n');
        }

        // 再生位置をセット
        //
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">再生</a>
        <a href="#" class="btn large" onclick="stopAudio();">停止</a>
        <p id="audio_position"></p>
      </body>
    </html>

BlackBerry WebWorks に関する注意点


media.startRecord

オーディオファイルの録音を開始します。

media.startRecord();

概要

media.startRecord 関数はオーディオファイルの録音を開始する同期関数です。

サポートされているプラットフォーム

使用例

// オーディオの録音
//
function recordAudio() {
    var src = "myrecording.mp3";
    var mediaRec = new Media(src,
        // 呼び出し成功
        function() {
            console.log("recordAudio():Audio Success");
        },

        // 呼び出し失敗
        function(err) {
            console.log("recordAudio():Audio Error: "+ err.code);
        });

    // オーディオの録音
    mediaRec.startRecord();
}

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // オーディオの録音
    //
    function recordAudio() {
        var src = "myrecording.mp3";
        var mediaRec = new Media(src, onSuccess, onError);

        // オーディオの録音
        mediaRec.startRecord();

        // 10秒後に録音を停止
        var recTime = 0;
        var recInterval = setInterval(function() {
            recTime = recTime + 1;
            setAudioPosition(recTime + " sec");
            if (recTime >= 10) {
                clearInterval(recInterval);
                mediaRec.stopRecord();
            }
        }, 1000);
    }

    // Cordova 準備完了
    //
    function onDeviceReady() {
        recordAudio();
    }

    // 成功時のコールバック関数
    //
    function onSuccess() {
        console.log("recordAudio():Audio Success");
    }

    // エラー時のコールバック関数 
    //
    function onError(error) {
        alert('コード: '        + error.code    + '\n' +
              'メッセージ: '    + error.message + '\n');
    }

    // 再生位置をセット
    //
    function setAudioPosition(position) {
        document.getElementById('audio_position').innerHTML = position;
    }

    </script>
  </head>
  <body>
    <p id="media">オーディオを録音...</p>
    <p id="audio_position"></p>
  </body>
</html>

BlackBerry WebWorks に関する注意点

iOS に関する注意点


media.stop

オーディオファイルを停止します。

media.stop();

概要

media.stop 関数はオーディオファイルを停止させる同期関数です。

サポートされているプラットフォーム

使用例

// オーディオ再生
//
function playAudio(url) {
    // URL のオーディオファイルを再生
    var my_media = new Media(url,
        // 呼び出し成功
        function() {
            console.log("playAudio():Audio Success");
        },
        // 呼び出し失敗
        function(err) {
            console.log("playAudio():Audio Error: "+err);
    });

    // オーディオ再生
    my_media.play();

    // 10秒後に一時停止
    setTimeout(function() {
        my_media.stop();
    }, 10000);
}

詳細な使用例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>メディアの使用例</title>

        <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Cordova の読み込み完了まで待機
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova 準備完了
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // オーディオプレイヤー
        //
        var my_media = null;
        var mediaTimer = null;

        // オーディオ再生
        //
        function playAudio(src) {
            // src から Media オブジェクトを作成
            my_media = new Media(src, onSuccess, onError);

            // オーディオ再生
            my_media.play();

            // my_media の再生位置を一秒ごとに更新
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // my_media の再生位置を取得
                    my_media.getCurrentPosition(
                        // 呼び出し成功
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // 呼び出し失敗
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // オーディオ一時停止
        //
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // オーディオ停止
        //
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // 成功時のコールバック関数
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }

        // エラー時のコールバック関数 
        //
        function onError(error) {
            alert('コード: '        + error.code    + '\n' +
                  'メッセージ: '    + error.message + '\n');
        }

        // 再生位置をセット
        //
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">再生</a>
        <a href="#" class="btn large" onclick="pauseAudio();">一時停止</a>
        <a href="#" class="btn large" onclick="stopAudio();">停止</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.stopRecord

オーディオファイルの録音を停止します。

media.stopRecord();

概要

media.stopRecord 関数はオーディオファイルの録音を停止させる同期関数です。

サポートされているプラットフォーム

使用例

// オーディオの録音
//
function recordAudio() {
    var src = "myrecording.mp3";
    var mediaRec = new Media(src,
        // 呼び出し成功
        function() {
            console.log("recordAudio():Audio Success");
        },

        // 呼び出し失敗
        function(err) {
            console.log("recordAudio():Audio Error: "+ err.code);
    });

    // オーディオの録音
    mediaRec.startRecord();

    // 10秒後に録音を停止
    setTimeout(function() {
        mediaRec.stopRecord();
    }, 10000);
}

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // オーディオの録音
    //
    function recordAudio() {
        var src = "myrecording.mp3";
        var mediaRec = new Media(src, onSuccess, onError);

        // オーディオの録音
        mediaRec.startRecord();

        // 10秒後に録音を停止
        var recTime = 0;
        var recInterval = setInterval(function() {
            recTime = recTime + 1;
            setAudioPosition(recTime + " sec");
            if (recTime >= 10) {
                clearInterval(recInterval);
                mediaRec.stopRecord();
            }
        }, 1000);
    }

    // Cordova 準備完了
    //
    function onDeviceReady() {
        recordAudio();
    }

    // 成功時のコールバック関数
    //
    function onSuccess() {
        console.log("recordAudio():Audio Success");
    }

    // エラー時のコールバック関数 
    //
    function onError(error) {
        alert('コード: '        + error.code    + '\n' +
              'メッセージ: '    + error.message + '\n');
    }

    // 再生位置をセット
    //
    function setAudioPosition(position) {
        document.getElementById('audio_position').innerHTML = position;
    }

    </script>
  </head>
  <body>
    <p id="media">オーディオを録音...</p>
    <p id="audio_position"></p>
  </body>
</html>

MediaError

MediaError オブジェクトは、エラー発生時に mediaError コールバック関数に渡されます。

プロパティー

定数

概要

MediaError オブジェクトは、エラー発生時に mediaError コールバック関数に渡されます。


mediaError

メディア関数群にエラーが発生したときのユーザーによって定義されるコールバック関数です。

function(error) {
    // エラー処理
}

パラメーター