Android

[Android] TextToSpeechをforeground serviceで実行する

投稿日:

はじめに

こんにちは。
前回の投稿ではTextToSpeechを使い、とりあえず喋らせるところまででした。
今回はTextToSpeechをforeground service化し、バックグラウンドで再生できるようにしてみます。
(レイアウトXMLやTextToSpeechのイベントリスナーは前回と同じ内容のため、省略します)

前回の記事 : [Android] KotlinでTextToSpeech

環境

  • macOS High Sierra 10.13.4
  • Android Studio 3.0.1
  • Nexus6 (Android8.1.0, API27 エミュレータ)

MainActivity.kt

前回はMainActivityの中でTextToSpeechを初期化・実行していましたが、今回はforeground serviceで実行しますので、MainActivityではサービスを開始するだけです。

なお、onClick内でSDKのバージョン判定を行い、OREO以降でのみ動作するコードになっています。
(もちろんNougat以下でもサービス実行できるコードを併記すべきですが、まだよく分かっておらず勉強中です…申し訳ありません)

ForegroundService.kt

サービス生成時に呼ばれるonCreateの中でTextToSpeechを初期化します。
サービス開始時にはonStartCommandが呼ばれるので、その中でTextToSpeechを実行します。

Activity側でbindServiceでサービスを開始した場合には、onBindが呼ばれます(今回は使用しません)。

また、foreground service実行に必要となるNotificationを作成します。
ここで作成されたNotificationは端末の通知欄に表示されるため、バックグラウンド処理のように実行されつつも、何の処理がじっこうされているのかがユーザーに明示されます。

実行してみる

入力したテキストを10回繰り返し読み上げますので、その最中に端末をスリープ状態にして、再生が途切れなければOKです。
(エミュレータの場合は、macであれば⌘+Pでスリープできます)

さいごに

今回はTextToSpeechをサービスとして実行してみました。
ただ、OREO以上でのみ動作するコードですし、テキスト読み上げ完了のイベントを捕まえてforeground serviceを終了させるなどの処理が必要になると思います。
また、Serviceはテキスト読み上げ以外にも、音楽データの連続再生や、大きいサイズのデータのダウンロードなど、様々なケースで必要になりそうですので、引き続き調べていきます。

page_footer_300rect




page_footer_300rect




-Android

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Android Studioでエラーログを詳細表示する

1 はじめに2 初期設定でのビルドエラーメッセージ3 詳細なビルドエラーメッセージを出力4 おまけ5 さいごに6 おすすめ書籍 はじめに こんにちは。Android開発を久しぶりにやっているのですが、 ...

Kotlinをはじめよう〜Kotlin基本文法〜

1 はじめに2 事前準備3 基本データ型4 変数5 条件分岐 if式6 条件分岐 when式7 繰り返し制御 while文8 繰り返し制御 for文9 さいごに10 おすすめ書籍 はじめに こんにちは ...

[Androidアニメーション]Shared Elements遷移

1 はじめに2 Shared Elements遷移とは3 layout xml4 Activity遷移5 その他6 さいごに はじめに 最近、雨が多いですね。そんな時は家にこもって、プログラミングをす ...

KotlinでAndroidの双方向DataBindingを利用する

1 はじめに2 MVVMアーキテクチャ2.1 Model2.2 View2.3 ViewModel3 KotlinでAndroid DataBindingを設定4 説明用のサンプルアプリについて5 a ...

【Androidマテリアル】Ripple Effect

1 はじめに2 Ripple Effectとは3 設定方法4 カスタマイズ5 さいごに はじめに こんにちは、ソニーから新Aiboが発表されましたね。個人的には欲しいと思っているのですが、最近Goog ...

フォロー

follow us in feedly

AppLink

英語

page_side_300rect

2018年6月
« 5月 7月 »
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

目標を達成したい方を応援する、TODOアプリもリリースしております。 下記のアイコンから無料でダウンロードできます。

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。 下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。