com.docomostar.opt.device
クラス MediaPlayer

Object
  上位を拡張 com.docomostar.opt.device.MediaPlayer

public class MediaPlayer
extends Object

ネイティブのメディアプレイヤーにアクセスする手段を提供します。

このクラスを用いて、外部メモリに格納されている動画ファイル (com.docomostar.fs.File クラスのインスタンス) を、直接、ネイティブのメディアプレイヤーで再生することができます。

メディアプレイヤーの連携起動中、 Star アプリは Suspended 状態となります。 メディアプレイヤーには、停止・早送り・巻戻し等のボタン (存在するボタンの種類は実装により異なります) が有りますが、 どのボタンを押下しても、メディアプレイヤーは一旦終了し、 Star アプリがレジュームします。レジューム時には、 メディアプレイヤーがどのような理由で(どのボタンが押されて)再生終了したかを、 戻り値として取得することができます。

また、再生開始位置を指定して再生したり、 メディアプレイヤー終了時の停止位置を取得することも可能です。

例えばプレイリストを再生する典型的なコードは下記のようになります。

public void playPlayList(com.docomostar.fs.File[] files) {
   int playNo = 0;
   MediaPlayer mp = MediaPlayer.getMediaPlayer();
   while (true) {
     try {
       // パラメータを指定して再生を行う
       int result = mp.play(files[playNo]);
       // 再生終了後、終了理由によって次の再生処理を行う
       switch (result) {
         case MediaPlayer.STATUS_COMPLETED:
         case MediaPlayer.STATUS_NEXT_SELECTED:
           // 次選曲、あるいは再生終了のため次の曲を再生する。
           playNo = (playNo + 1) % files.length;
           break; 
         case MediaPlayer.STATUS_PREVIOUS_SELECTED:
           // 前選曲のため前の曲を再生する。
           playNo = (playNo + files.length - 1) % files.length;
           break; 
         case MediaPlayer.STATUS_SUSPENDED:
         case MediaPlayer.STATUS_STOPPED:
         case MediaPlayer.STATUS_FAILED:
           // 停止ボタンが押された、あるいは
           // メディアプレイヤーの異常終了のため、再生を終了する。
           return;
       }
     } catch (...) {
       // 再生できなかった場合の処理
     }
   }
 }

導入されたバージョン:
Star-1.0

フィールドの概要
static int STATUS_COMPLETED
          メディアプレイヤーの終了理由で、 コンテンツの最後まで再生が完了したことを示します(=2)。
static int STATUS_FAILED
           メディアプレイヤーの終了理由で、 その他の理由でファイルの再生が継続できなかったことを示します(=98)。
static int STATUS_NEXT_SELECTED
           メディアプレイヤーの終了理由で、 進む(早送り)ボタンによって再生が終了したことを示します(=4)。
static int STATUS_PREVIOUS_SELECTED
           メディアプレイヤーの終了理由で、 戻る(巻戻し)ボタンによって再生が終了したことを示します(=3)。
static int STATUS_STOPPED
          メディアプレイヤーの終了理由で、 停止ボタンによって再生が終了したことを示します(=1)。
static int STATUS_SUSPENDED
          メディアプレイヤーの終了理由で、 再生中の外的要因(着信など)により再生が中断されたことを示します(=97)。
 
メソッドの概要
 long getLastStoppedPosition()
           メディアプレイヤーの前回の再生における、 メディアの停止位置を返します。
static MediaPlayer getMediaPlayer()
          メディアプレイヤーオブジェクトを取得します。
 int play(com.docomostar.fs.File file)
           ネイティブのメディアプレイヤーで、 指定されたファイルを先頭から再生します。
 int play(com.docomostar.fs.File file, long position)
           ネイティブのメディアプレイヤーで、再生位置を指定して、 指定されたファイルを再生します。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

STATUS_STOPPED

public static final int STATUS_STOPPED
メディアプレイヤーの終了理由で、 停止ボタンによって再生が終了したことを示します(=1)。

関連項目:
play(File, long), 定数フィールド値

STATUS_COMPLETED

public static final int STATUS_COMPLETED
メディアプレイヤーの終了理由で、 コンテンツの最後まで再生が完了したことを示します(=2)。

関連項目:
play(File, long), 定数フィールド値

STATUS_PREVIOUS_SELECTED

public static final int STATUS_PREVIOUS_SELECTED

メディアプレイヤーの終了理由で、 戻る(巻戻し)ボタンによって再生が終了したことを示します(=3)。

実装によっては、戻る(巻戻し)ボタンが存在しない場合もあります。 そのような実装では、終了理由として、この値が返されることはありません。

関連項目:
play(File, long), 定数フィールド値

STATUS_NEXT_SELECTED

public static final int STATUS_NEXT_SELECTED

メディアプレイヤーの終了理由で、 進む(早送り)ボタンによって再生が終了したことを示します(=4)。

実装によっては、進む(早送り)ボタンが存在しない場合もあります。 そのような実装では、終了理由として、この値が返されることはありません。

関連項目:
play(File, long), 定数フィールド値

STATUS_SUSPENDED

public static final int STATUS_SUSPENDED
メディアプレイヤーの終了理由で、 再生中の外的要因(着信など)により再生が中断されたことを示します(=97)。

関連項目:
play(File, long), 定数フィールド値

STATUS_FAILED

public static final int STATUS_FAILED

メディアプレイヤーの終了理由で、 その他の理由でファイルの再生が継続できなかったことを示します(=98)。

再生中にファイルフォーマットの異常を検知した場合や、 再生中にメディアが抜かれた場合などが含まれます。

関連項目:
play(File, long), 定数フィールド値
メソッドの詳細

getMediaPlayer

public static MediaPlayer getMediaPlayer()
メディアプレイヤーオブジェクトを取得します。 常に同じオブジェクトへの参照を返します。

戻り値:
メディアプレイヤーオブジェクトを返します。
例外:
com.docomostar.lang.UnsupportedOperationException -
本機能が未サポートの場合に発生します。

play

public int play(com.docomostar.fs.File file)
         throws java.io.IOException

ネイティブのメディアプレイヤーで、 指定されたファイルを先頭から再生します。

play(file, 0) を呼び出すことと同じです。

パラメータ:
file - 再生したいファイルを指定します。
戻り値:
メディアプレイヤーの終了理由として、 このクラスの STATUS_ から始まる定数を返します。
例外:
NullPointerException -
引数 file に null が指定された場合に発生します。
com.docomostar.device.DeviceException -
(BUSY_RESOURCE)
音声・テレビ電話通話中に呼び出された場合に発生します。
com.docomostar.device.DeviceException -
(BUSY_RESOURCE)
マルチタスク機能によってバックグラウンドで動作しているネイティブ機能が未保存のデータを保持している場合に、 動画再生時のユーザ確認においてユーザが当該データの破棄を拒否すると発生します。
com.docomostar.device.DeviceException -
(BUSY_RESOURCE)
[Star-1.1 まで] PTT 呼通信中に呼び出された場合に発生します。
java.io.IOException -
ファイルが削除されている場合や、 このファイルが記録されているメディアが存在しなかった場合など、 再生開始時に I/O エラーが発生した場合に発生します。
com.docomostar.device.DeviceException -
(UNDEFINED)
その他の理由で、 ネイティブ側で再生開始に失敗した場合に発生します。 競合条件などにより再生開始前にメディアプレイヤーが異常終了した場合、 再生開始前に再生不可能なフォーマットであることが判明した場合や、 リソース不足により再生できない場合も含みます。

play

public int play(com.docomostar.fs.File file,
                long position)
         throws java.io.IOException

ネイティブのメディアプレイヤーで、再生位置を指定して、 指定されたファイルを再生します。

このメソッドが呼び出されると、Star アプリはサスペンドし、 ネイティブのメディアプレイヤーが起動します。 起動したメディアプレイヤーは、指定されたファイルを、 指定された位置から再生します。

メディアプレイヤーが終了すると、 Star アプリはレジュームし、 戻り値としてプレイヤーの終了理由が返されます。

引数で指定されたファイルが少しでも再生できた場合には、 このメソッドは例外を発生せずに正常リターンし、 getLastStoppedPosition() で得られる値を更新します。 一方、全く再生できなかった場合には、例外が発生し、 getLastStoppedPosition() で得られる値は更新しません。

引数 file が、既に(読み出し専用モードで) File.open(int) されている場合に、再生可能かどうかは機種依存です。 再生不可能な場合には IOException が発生します。
また、引数 position に、 指定したファイルの再生時間よりも大きな値を指定した場合に、 即座に STATUS_COMPLETED をリターンするか、 例外が発生するかは機種依存です。

パラメータ:
file - 再生したいファイルを指定します。
position - 再生開始位置(ファイル先頭からの時間[msec])を指定します。 先頭から再生したい場合には0を指定します。
戻り値:
メディアプレイヤーの終了理由として、 このクラスの STATUS_ から始まる定数を返します。
例外:
NullPointerException -
引数 file に null が指定された場合に発生します。
IllegalArgumentException -
引数 position に0未満の値が指定された場合に発生します。
com.docomostar.device.DeviceException -
(BUSY_RESOURCE)
音声・テレビ電話通話中に呼び出された場合に発生します。
com.docomostar.device.DeviceException -
(BUSY_RESOURCE)
マルチタスク機能によってバックグラウンドで動作しているネイティブ機能が未保存のデータを保持している場合に、 動画再生時のユーザ確認においてユーザが当該データの破棄を拒否すると発生します。
com.docomostar.device.DeviceException -
(BUSY_RESOURCE)
[Star-1.1 まで] PTT 呼通信中に呼び出された場合に発生します。
java.io.IOException -
ファイルが削除されている場合や、 このファイルが記録されているメディアが存在しなかった場合など、 再生開始時に I/O エラーが発生した場合に発生します。
com.docomostar.device.DeviceException -
(UNDEFINED)
その他の理由で、 ネイティブ側で再生開始に失敗した場合に発生します。 競合条件などにより再生開始前にメディアプレイヤーが異常終了した場合、 再生開始前に再生不可能なフォーマットであることが判明した場合や、 リソース不足により再生できない場合も含みます。

getLastStoppedPosition

public long getLastStoppedPosition()

メディアプレイヤーの前回の再生における、 メディアの停止位置を返します。 play(File, long) 呼び出し時に例外が発生した場合には、 停止位置を取得することはできません。その場合は play 前に取得できた値を引き続き返します。

Star アプリが起動してから一度もメディアプレイヤーを起動していない状態で、 このメソッドが呼び出された場合には0を返します。

戻り値:
メディアの先頭からの経過時間[msec]を返します。


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。