Presentation is loading. Please wait.

Presentation is loading. Please wait.

5-7 音声の再生 (1)テキストスピーチ A. 手順 音声による英文のスピーチ ・ Android 1.6 以降の実機で可能。 ・ Android 2.3.3 では英語であれば エミュレータで可能。それ以前は実機のみ。 ・機種によっては音声がインストールされていない場合があるので、 Android.

Similar presentations


Presentation on theme: "5-7 音声の再生 (1)テキストスピーチ A. 手順 音声による英文のスピーチ ・ Android 1.6 以降の実機で可能。 ・ Android 2.3.3 では英語であれば エミュレータで可能。それ以前は実機のみ。 ・機種によっては音声がインストールされていない場合があるので、 Android."— Presentation transcript:

1 5-7 音声の再生 (1)テキストスピーチ A. 手順 音声による英文のスピーチ ・ Android 1.6 以降の実機で可能。 ・ Android 2.3.3 では英語であれば エミュレータで可能。それ以前は実機のみ。 ・機種によっては音声がインストールされていない場合があるので、 Android マー ケットからダウンロードしてインストールする。 【手順】 ①初期化時に呼び出されるリスナを指定して、 TextToSpeach クラスを作成。 ②言語を指定。ここでは ENGLISH 。 ③ Edit Text ウィジェットに入力されたテキストを指定して、 speak メソッドを呼び 出す。

2 C. プログラム例(1) package jp.yu.speech; import android.app.Activity; import android.os.Bundle; import java.util.*; import android.speech.tts.*; import android.speech.tts.TextToSpeech.*; import android.view.*; import android.view.View.*; import android.widget.*; public class SpeechActivity extends Activity { EditText text; Button btn; TextToSpeech tsp; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL = new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); text = new EditText(this); LL.addView(text); btn = new Button(this); btn.setText("Start"); LL.addView(btn); tsp =new TextToSpeech(getApplicationContext(), new SpeechInitListener());

3 プログラム例(2) tsp.setLanguage(Locale.ENGLISH); btn.setOnClickListener(new SpeechClickListener()); } class SpeechClickListener implements OnClickListener{ @Override public void onClick(View arg0) { String str = text.getText().toString(); if(str != null) tsp.speak(str, TextToSpeech.QUEUE_FLUSH, null); } class SpeechInitListener implements OnInitListener{ @Override public void onInit(int arg0) {} }

4 D. 実行例 Edit Text ウィジェットに 英文を入力して Start ボタンをクリック。 テキストが読まれる。

5 (2)音声データの再生 A. 再生可能ファイル フォーマット/コーデックエンコーダデコーダサポートファイル AAC LC/LTPMP3 ○ ○ 3GPP(.3gp) NE-AACv1(AAC+) … ○ MPEG-4(.mp4, m4a) HE-AACv2 … ○ ADTS raw AAC(.aac) (enhanced AAC+) ・デコード (Android 3.1 以上 ) ・エンコード (Android 4.0 以上 ) ・ ADIF 非サポート MPEG-TS(.ts)Android 3.0 以上,シーク不可 AMR-NB ○ ○ 3GPP(.3gp) AMR-WB ○ ○ 3GPP(.3gp) FLAC … ○ FLAC(.flac) Android 3.1 以上 MP3 … ○ MP3(.mp3) MIDI … ○ Type and 1(.mid,.xmf,.mxmf) RTTTL/RTX(.rtttl,.rtx), OTA(.ota), iMelody(.imy) Vorbis … ○ Ogg(.ogg), Matroska(.mkv), Android 4.0 以上 PCM/WAVE … ○ WAVE(.wav)

6 B. サポート詳細 フォーマット/コーデック詳細 AAC LC/LTPMP3 モノラル/ステレオ, NE-AACv1(AAC+) 最高 160 Kbps, サンプリングレート 8 ~ 48 kHz HE-AACv2 AMR-NB4.75 ~ 12.2 Kbps, サンプリングレート 8 kHz AMR-WB6.60 ~ 23.85 Kbps, サンプリングレート 16 kHz FLAC モノラル/ステレオ ( マルチチャンネル不可 ), 16 bit 推奨, サンプリングレート 48kHz, 24 bit ディザは適用されない。 MP3 モノラル/ステレオ, 8 ~ 320 Kbps ( CBR), または VBR MIDIMIDI Type 0 and 1, DLS Version 1 and 2, XMF, Mobile XMF, RTTTL/RTX, OTA, iMelody PCM/WAVE8 and 16 bit linear PCM

7 C. 再生方法 ・安全のためエミュレータでは 4.0 以降を使うこと 【手順】 ①「 res 」フォルダ内に「 raw 」サブフォルダを作成。 ②音声ファイルを raw サブフォルダ内に移動。サンプルでは music1.mp3 を指定。 ③リソースを指定するときは「 R.raw. ファイル名」。サンプルでは 「 R.raw.music 」と指定する。

8 D. 操作方法 (その1) Res フォルダ内に raw サブフォルダ作成 ①「 res 」フォルダ選択 ②「ファイル」「新規」「フォルダ」を指 定

9 操作方法 (その2) ③フォルダ名「 raw 」を入力して「完了」ボタンクリック

10 操作方法 (その3) ④音声ファイルを「 raw 」フォルダにドラッギング ⑤「ファイルをコピー」にチェッ クを 入れて「OK」ボタンをクリッ ク ⑥コピーされていることを確 認

11 E. 関連クラス 【 android.media.MediaPlayer クラス】 static MediaPlayer create 指定リソースを再生するメディア (Content cn, int id) プレーヤを作成。 void prepare() メディアプレーヤの準備 void start() 再生開始 void pause() 再生一時停止 void stop() 再生停止 void seekTo(int m) 再生ミリ秒に移動 void release() メモリの開放 void setOnCompletionListener サウンド再生完了リスナーの指定 (MediaPlayer.OnCompletionListener l) l :サウンド完了リスナー void onCompletion(MediaPlayer mp) サウンド再生完了時に呼ばれる。 【注意】バックキーなどでホーム画面に移っても,メモリが許す限りバックグラ ウンドで動いているので,そのままでは再生し続けることになる。 アプリ停止時に明示的にサウンドを停止することが必要。

12 C. プログラム例(1) package jp.sound; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.media.MediaPlayer; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.Window; public class SoundActivity extends Activity { private MediaPlayerView view; private MediaPlayer player; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); view =new MediaPlayerView(this); setContentView(view); } class MediaPlayerView extends View implements MediaPlayer.OnCompletionListener{ public MediaPlayerView(Context context) { super(context); setBackgroundColor(Color.WHITE); setFocusable(true); player=null; } public void onDraw(Canvas canvas){ Paint p = new Paint(); p.setAntiAlias(true); p.setTextSize(32); canvas.drawText("Media Player Excecute",0,40,p); }

13 プログラム例(2) public boolean onTouchEvent(MotionEvent event){ if(event.getAction()==MotionEvent.ACTION_DOWN){ if(player==null)playSound(); else stopSound(); } return true; } public void playSound(){ try{ stopSound(); player=MediaPlayer.create(getBaseContext(), R.raw.music1); player.seekTo(0); player.start(); player.setOnCompletionListener(this); }catch(Exception e){} } public void stopSound(){ try{ if(player == null) return; player.stop(); player.setOnCompletionListener(null); player.release(); player=null; }catch(Exception e){} } public void onCompletion(MediaPlayer mp) { stopSound(); }


Download ppt "5-7 音声の再生 (1)テキストスピーチ A. 手順 音声による英文のスピーチ ・ Android 1.6 以降の実機で可能。 ・ Android 2.3.3 では英語であれば エミュレータで可能。それ以前は実機のみ。 ・機種によっては音声がインストールされていない場合があるので、 Android."

Similar presentations


Ads by Google