com.nttdocomo.opt.device
クラス RadioTuner

Object
  拡張com.nttdocomo.opt.device.RadioTuner

public class RadioTuner
extends Object

ネイティブのラジオチューナー機能にアクセスする手段を提供します。 FM ラジオチューナー、AM ラジオチューナーを使用してラジオ音を鳴らします。 FM ラジオチューナーの場合には TV1、TV2、TV3 の周波数も使用できます。

このクラスの turnOn() を呼び出すとラジオ音を鳴らすことができます。 ラジオ音を停止するには turnOff() を呼び出します。 また、isTurnedOn() を呼び出すことで、 ラジオ音が鳴っているか否かを調べることができます。

下記メソッド呼び出しによるサウンド再生中には、 ラジオ音を鳴らすことはできません。 サウンド再生中にラジオ音を鳴らそうとした場合には例外が発生します。 また、ラジオ音を鳴らしている最中に下記メソッドを呼び出すと、 ラジオ音が停止します(チューナーが電源 OFF の状態になります)。

アプリケーションが待ち受け活性化状態から非活性化状態に遷移しても、 ラジオ音は鳴り続けます。 待ち受け非活性化状態においてラジオ音を鳴らしている場合、 アプリケーションがサスペンドすることなくネイティブ音(キー確認音、フリップ開閉音など)が鳴ることはありません。

アプリケーションがサスペンド状態/待ち受け休眠状態に遷移しても、 ラジオ音は鳴り続けます。ただしこの場合、 他のネイティブ機能(音楽プレイヤーや音声着信などの音が鳴る機能)が起動することによって、 鳴り続けていたラジオ音が停止します。 ラジオ音は一度停止すると、 アプリケーションがレジューム/休眠復帰した場合でも自動再開はされません。 再開する場合は turnOn() を呼び出して下さい。 なお、具体的にどのネイティブ機能が起動することによって、ラジオ音が停止するかは機種依存です。

アプリケーションが終了すると、ラジオ音は停止します。

導入されたバージョン:
DoJa-5.0 (903i)

フィールドの概要
static int FREQUENCY_TV1
          周波数の属性値で TV1 を表します(=95750)。
static int FREQUENCY_TV2
          周波数の属性値で TV2 を表します(=101750)。
static int FREQUENCY_TV3
          周波数の属性値で TV3 を表します(=107750)。
static int MODE_AUTO
          ステレオモードの属性値でオートモードを表します(=10)。
static int MODE_MONAURAL
          ステレオモードの属性値でモノラルモードを表します(=20)。
static int OUT_AUTO
          出力先の属性値でオート出力を表します(=300)。
static int OUT_EARPHONE
          出力先の属性値でイヤホン出力を表します(=200)。
static int OUT_SPEAKER
          出力先の属性値でスピーカ出力を表します(=100)。
static int TUNERTYPE_AM
          チューナータイプの属性値で AM ラジオチューナーを表します(=1)。
static int TUNERTYPE_FM
          チューナータイプの属性値で FM ラジオチューナーを表します(=0)。
 
メソッドの概要
 int getFrequency()
          チューナーに設定されている周波数を取得します。
 int getMaxFrequency(int type)
          各チューナータイプに設定できる周波数の最大値を取得します。
 int getMinFrequency(int type)
          各チューナータイプに設定できる周波数の最小値を取得します。
 int getOutput()
          チューナーに設定されている出力先を取得します。
static RadioTuner getRadioTuner()
          RadioTuner オブジェクトを取得します。
 int getStereoMode()
          チューナーに設定されているステレオモードを取得します。
 int[] getSupportedTunerTypes()
          端末がサポートしているチューナータイプを取得します。
 int getTunerType()
          チューナーに設定されているチューナータイプを取得します。
 int getVolume()
          チューナーに設定されているボリュームを取得します。
 void interruptSeeking()
          Seek を中断します。
 boolean isTurnedOn()
          チューナーの電源 ON/OFF の状態を取得します。
 void savePower()
          省電力のためにサスペンドします。
 int seekFrequency(boolean upward)
          隣接する周波数を Seek します。
 void setFrequency(int frequency)
          チューナーに周波数を設定します。
 void setOutput(int out)
          チューナーに出力先を設定します。
 void setStereoMode(int mode)
          チューナーにステレオモードを設定します。
 void setTunerType(int type)
          チューナーにチューナータイプを設定します。
 void setVolume(int volume)
          チューナーにボリュームを設定します。
 void turnOff()
          チューナーの電源を切断し、ラジオ音を停止します。
 void turnOn()
          チューナーに電源を供給し、ラジオ音を鳴らし始めます。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

TUNERTYPE_FM

public static final int TUNERTYPE_FM
チューナータイプの属性値で FM ラジオチューナーを表します(=0)。

関連項目:
setTunerType(int), getMaxFrequency(int), getMinFrequency(int), 定数フィールド値

TUNERTYPE_AM

public static final int TUNERTYPE_AM
チューナータイプの属性値で AM ラジオチューナーを表します(=1)。

関連項目:
setTunerType(int), getMaxFrequency(int), getMinFrequency(int), 定数フィールド値

FREQUENCY_TV1

public static final int FREQUENCY_TV1
周波数の属性値で TV1 を表します(=95750)。

関連項目:
setFrequency(int), 定数フィールド値

FREQUENCY_TV2

public static final int FREQUENCY_TV2
周波数の属性値で TV2 を表します(=101750)。

関連項目:
setFrequency(int), 定数フィールド値

FREQUENCY_TV3

public static final int FREQUENCY_TV3
周波数の属性値で TV3 を表します(=107750)。

関連項目:
setFrequency(int), 定数フィールド値

MODE_AUTO

public static final int MODE_AUTO
ステレオモードの属性値でオートモードを表します(=10)。

関連項目:
setStereoMode(int), 定数フィールド値

MODE_MONAURAL

public static final int MODE_MONAURAL
ステレオモードの属性値でモノラルモードを表します(=20)。

関連項目:
setStereoMode(int), 定数フィールド値

OUT_SPEAKER

public static final int OUT_SPEAKER
出力先の属性値でスピーカ出力を表します(=100)。

関連項目:
setOutput(int), 定数フィールド値

OUT_EARPHONE

public static final int OUT_EARPHONE
出力先の属性値でイヤホン出力を表します(=200)。

関連項目:
setOutput(int), 定数フィールド値

OUT_AUTO

public static final int OUT_AUTO
出力先の属性値でオート出力を表します(=300)。

  • イヤホン未挿入時: スピーカ出力
  • イヤホン挿入時: イヤホン出力

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

getRadioTuner

public static RadioTuner getRadioTuner()
RadioTuner オブジェクトを取得します。 このメソッドを複数回呼び出しても、常に同じインスタンスが返ります。

以下の項目の初期値は機種依存になります。

  • チューナータイプ
  • 周波数(※)
  • ボリューム
  • ステレオモード
  • 出力先

(※) 周波数は各チューナータイプ毎に初期値が設定されます。

戻り値:
RadioTuner オブジェクトを返します。
例外:
com.nttdocomo.lang.UnsupportedOperationException - 本機能が未サポートの場合に発生します。

turnOn

public void turnOn()
チューナーに電源を供給し、ラジオ音を鳴らし始めます。

既にチューナーが電源 ON である場合は何もしません。

例外:
com.nttdocomo.device.DeviceException - サウンド再生中に呼び出された場合に発生します(BUSY_RESOURCE)。
com.nttdocomo.device.DeviceException - 音声・テレビ電話通話中に呼び出された場合に発生します(BUSY_RESOURCE)。
com.nttdocomo.device.DeviceException - [DoJa-5.0 (903i) のみ] 音楽プレイヤーを優先モードで実行中に呼び出された場合に発生します (BUSY_RESOURCE)。
com.nttdocomo.device.DeviceException - PTT 呼通信中に呼び出された場合に発生します(BUSY_RESOURCE)。
com.nttdocomo.device.DeviceException - 競合によりネイティブ側で電源 ON に失敗した場合に発生します(RACE_CONDITION)。

turnOff

public void turnOff()
チューナーの電源を切断し、ラジオ音を停止します。

Seek 実行中に、 このメソッドを呼び出した場合は Seek 処理が中断されます。 中断されたスレッドは DeviceException(INTERRUPTED) が発生します。

既にチューナーが電源 OFF である場合は何もしません。


isTurnedOn

public boolean isTurnedOn()
チューナーの電源 ON/OFF の状態を取得します。

戻り値:
チューナーが電源 ON の場合は ture を、 電源 OFF の場合は false を返します。

setTunerType

public void setTunerType(int type)
チューナーにチューナータイプを設定します。

チューナーが電源 ON の場合、即座に設定が反映されます。
チューナーが電源 OFF の場合、電源 ON 時に最新の設定が反映されます。

Seek 実行中に、 このメソッドを呼び出した場合は以下の動作となります。

  • カレントのチューナータイプを指定した場合は、何もしません。
  • 非カレントのチューナータイプを指定した場合は、例外が発生します。

上記の、カレントのチューナータイプとは、このメソッドを呼び出した時点で getTunerType() にて取得できるチューナータイプです。

パラメータ:
type - チューナータイプを指定します。 TUNERTYPE_FM、TUNERTYPE_AM を指定可能です。
例外:
IllegalArgumentException - 引数 type にサポートしていないチューナータイプが指定された場合に発生します。
com.nttdocomo.device.DeviceException - Seek 実行中に呼び出された場合に発生します(BUSY_RESOURCE)。

getTunerType

public int getTunerType()
チューナーに設定されているチューナータイプを取得します。

チューナーの電源 ON/OFF に関わらず最新の設定を取得することができます。

戻り値:
チューナータイプを返します。

setFrequency

public void setFrequency(int frequency)
チューナーに周波数を設定します。 カレントのチューナータイプに対して設定します。 カレントのチューナータイプは、このメソッドを呼び出した時点で getTunerType() にて取得できるチューナータイプです。

設定値には端末がサポートしている範囲の周波数を指定します。 設定する周波数は kHz 単位の値を指定します。
(例) 80.2MHz → 80200
設定できる周波数の範囲は、カレントのチューナータイプによって異なります。 それぞれのチューナータイプに設定できる周波数の範囲は getMinFrequency(int) 以上 getMaxFrequency(int) 以下になります。

設定した周波数は、各チューナータイプ毎に保持されます。 つまり、カレントのチューナータイプに対して周波数を設定しますが、 そのチューナータイプが非カレントとなった場合でも、 そのチューナータイプに設定した周波数は記憶されています。

チューナーが電源 ON の場合、即座に設定が反映されます。
チューナーが電源 OFF の場合、電源 ON 時に最新の設定が反映されます。

Seek 実行中に、 このメソッドを呼び出した場合は例外が発生します。

パラメータ:
frequency - 設定する周波数の kHz 単位の値を指定します。 FM ラジオチューナーの場合は TV チャンネル (FREQUENCY_TV1、FREQUENCY_TV2、FREQUENCY_TV3) も指定可能です。
例外:
IllegalArgumentException - 引数 frequency に設定できる範囲外の数値を指定した場合に発生します。
com.nttdocomo.device.DeviceException - Seek 実行中に呼び出された場合に発生します(BUSY_RESOURCE)。

getFrequency

public int getFrequency()
チューナーに設定されている周波数を取得します。 カレントのチューナータイプに対して設定されている値を取得します。 カレントのチューナータイプは、このメソッドを呼び出した時点で getTunerType() にて取得できるチューナータイプです。

チューナーの電源 ON/OFF に関わらず最新の設定を取得することができます。

戻り値:
周波数の値(kHz 単位)または TV チャンネル値を返します。

setVolume

public void setVolume(int volume)
チューナーにボリュームを設定します。

設定値には最大ボリュームレベルを 100 として、 0 以上 100 以下の値を指定します。

チューナーが電源 ON の場合、即座に設定が反映されます。
チューナーが電源 OFF の場合、電源 ON 時に最新の設定が反映されます。

Seek 実行中に、 このメソッドを呼び出した場合の動作は機種依存です。 設定できない場合は例外が発生します。

パラメータ:
volume - 設定するボリューム値を指定します。 0 以上 100 以下の値を指定可能です。
例外:
IllegalArgumentException - 引数 volume に 0 より小さい値、 または 100 より大きい値が指定された場合に発生します。
com.nttdocomo.device.DeviceException - Seek 実行中に呼び出された場合に発生します(BUSY_RESOURCE)。

getVolume

public int getVolume()
チューナーに設定されているボリュームを取得します。

チューナーの電源 ON/OFF に関わらず最新の設定を取得することができます。

戻り値:
ボリューム値を返します。

setStereoMode

public void setStereoMode(int mode)
チューナーにステレオモードを設定します。

チューナーが電源 ON の場合、即座に設定が反映されます。
チューナーが電源 OFF の場合、電源 ON 時に最新の設定が反映されます。

Seek 実行中に、 このメソッドを呼び出した場合の動作は機種依存です。 設定できない場合は例外が発生します。

パラメータ:
mode - ステレオモードを指定します。 MODE_AUTO、MODE_MONAURAL を指定可能です。
例外:
IllegalArgumentException - 引数 mode に MODE_AUTO、MODE_MONAURAL 以外の値が指定された場合に発生します。
com.nttdocomo.device.DeviceException - Seek 実行中に呼び出された場合に発生します(BUSY_RESOURCE)。

getStereoMode

public int getStereoMode()
チューナーに設定されているステレオモードを取得します。

チューナーの電源 ON/OFF に関わらず最新の設定を取得することができます。

戻り値:
ステレオモードを返します。

setOutput

public void setOutput(int out)
チューナーに出力先を設定します。

OUT_SPEAKER を指定した場合:
イヤホンが装着されているか否かに関わらずスピーカーから音が出力されます。
OUT_EARPHONE を指定した場合:
イヤホンが装着されていない場合には音が出力されません。 イヤホンを装着するとイヤホンから音が出力されます。
OUT_AUTO を指定した場合:
イヤホンが装着されていない場合にはスピーカーから音が出力されます。 イヤホンが装着されている場合にはイヤホンから音が出力されます。

チューナーが電源 ON の場合、即座に設定が反映されます。
チューナーが電源 OFF の場合、電源 ON 時に最新の設定が反映されます。

Seek 実行中に、 このメソッドを呼び出した場合の動作は機種依存です。 設定できない場合は例外が発生します。

パラメータ:
out - 出力先を指定します。 OUT_SPEAKER、OUT_EARPHONE、OUT_AUTO を指定可能です。
例外:
IllegalArgumentException - 引数 out に OUT_SPEAKER、OUT_EARPHONE、OUT_AUTO 以外の値が指定された場合に発生します。
com.nttdocomo.device.DeviceException - Seek 実行中に呼び出された場合に発生します(BUSY_RESOURCE)。

getOutput

public int getOutput()
チューナーに設定されている出力先を取得します。

チューナーの電源 ON/OFF に関わらず最新の設定を取得することができます。

戻り値:
出力先を返します。

getMaxFrequency

public int getMaxFrequency(int type)
各チューナータイプに設定できる周波数の最大値を取得します。

TV の周波数は対象外です。

パラメータ:
type - チューナータイプを指定します。 TUNERTYPE_FM、TUNERTYPE_AM を指定可能です。
戻り値:
指定されたチューナータイプに対して設定可能な周波数の最大値を返します。
例外:
IllegalArgumentException - 引数 type にサポートしていないチューナータイプが指定された場合に発生します。

getMinFrequency

public int getMinFrequency(int type)
各チューナータイプに設定できる周波数の最小値を取得します。

パラメータ:
type - チューナータイプを指定します。 TUNERTYPE_FM、TUNERTYPE_AM を指定可能です。
戻り値:
指定されたチューナータイプに対して設定可能な周波数の最小値を返します。
例外:
IllegalArgumentException - 引数 type にサポートしていないチューナータイプが指定された場合に発生します。

seekFrequency

public int seekFrequency(boolean upward)
隣接する周波数を Seek します。 カレントのチューナータイプに対して Seek を行います。 カレントのチューナータイプは、このメソッドを呼び出した時点で getTunerType() にて取得できるチューナータイプです。

このメソッドの振る舞いは以下のようになります。

Seek が成功した(隣接する周波数を見つけた)場合:
チューナーには見つけた周波数が設定され、その周波数を戻り値として返します。
Seek が失敗した(隣接する周波数を見つけられなかった)場合:
チューナーには機種依存の周波数が設定され、-1 を戻り値として返します。
Seek 処理が中断要求発生(interruptSeeking()、 turnOff() 呼び出し)により中断した場合:
チューナーには機種依存の周波数が設定され、 DeviceException(INTERRUPTED) が発生します。
Seek 処理がその他の理由(競合など)により異常終了した場合:
チューナーには機種依存の周波数が設定され、 DeviceException(UNDEFINED) が発生します。

このメソッドによる Seek 処理は、周波数帯をサイクリックに Seek します。 つまり、周波数が大きくなる方向に Seek する場合、 周波数帯の最大値に達すると周波数帯の最小値から Seek を継続します。 同様に、周波数が小さくなる方向に Seek する場合、 周波数帯の最小値に達すると周波数帯の最大値から Seek を継続します。

TV の周波数は Seek の対象外です。

チューナーが電源 OFF の場合に、このメソッドを呼び出すと例外が発生します。
既に Seek 実行中に、このメソッドを呼び出すと例外が発生します。

このメソッドの処理中にアプリケーションがサスペンド状態に遷移しても、 Seek 処理は継続され、レジューム後に結果を戻り値として返します。 ただし、サスペンド中に競合などの理由により Seek 処理が異常終了した場合は、 レジューム後に DeviceException(UNDEFINED) が発生します。

パラメータ:
upward - 周波数が大きくなる方向に Seek する場合には true を、 小さくなる方向に Seek する場合には false を指定します。
戻り値:
Seek に成功した場合には、見つけた周波数を返します。 Seek に失敗した場合には -1 を返します。
例外:
com.nttdocomo.device.DeviceException - チューナーが電源 OFF 状態であるときに呼び出された場合に発生します(ILLEGAL_STATE)。
com.nttdocomo.device.DeviceException - Seek 実行中に呼び出された場合に発生します(BUSY_RESOURCE)。
com.nttdocomo.device.DeviceException - 別スレッドからの中断要求発生(interruptSeeking()、 turnOff() 呼び出し)により Seek 処理が中断した場合に発生します(INTERRUPTED)。
com.nttdocomo.device.DeviceException - その他の理由(競合など)により Seek 処理が異常終了した場合に発生します(UNDEFINED)。

interruptSeeking

public void interruptSeeking()
Seek を中断します。 seekFrequency(boolean) にて Seek を行っている場合に、 このメソッドを呼び出すと Seek 処理が中断されます。 中断されたスレッドは DeviceException(INTERRUPTED) が発生します。

Seek が行われていないときに呼び出された場合は、 このメソッドは何もしません。


savePower

public void savePower()
省電力のためにサスペンドします。

このメソッドを呼び出すとアプリケーションはサスペンドします。 この際、ラジオ音を鳴らしている場合は、 ラジオ音は鳴り続けます。 アプリケーションがサスペンドしている間、 端末が省電力モードをサポートしている場合は省電力モードに切り替わります。

このメソッド呼び出しによってサスペンドしたアプリケーションが、 レジュームする条件は以下の通りです。 下記以外のレジューム条件については機種依存です。

  • ユーザによるキー操作があった場合
    (ただし、iアプリのタスクが foreground であり、かつ、 iアプリがイベントとして受信可能なキーに限る)
  • iアプリのタスクが一度 background に移り、 その後 foreground に復帰した場合
    (音声着信、メール着信などから復帰した場合)

チューナーの電源 ON/OFF に関わらず、省電力のためにサスペンドすることができます。

Seek 実行中に、 このメソッドを呼び出した場合の動作は機種依存です。 サスペンドできない場合は例外が発生します。

例外:
com.nttdocomo.lang.IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
com.nttdocomo.device.DeviceException - Seek 実行中に呼び出された場合に発生します(BUSY_RESOURCE)。

getSupportedTunerTypes

public int[] getSupportedTunerTypes()
端末がサポートしているチューナータイプを取得します。

戻り値の配列に含まれている値であれば、下記メソッドの引数に指定しても IllegalArgumentException が発生しないことが保証されています。

戻り値:
端末がサポートしているチューナータイプ(このクラスに定義されている TUNERTYPE_ から始まる定数) が全て格納された一次元配列を返します。 返される配列は、このクラスが内部で保持している配列のコピーです。


NTT DoCoMo,Inc.

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

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

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

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