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はテキスト読み上げ以外にも、音楽データの連続再生や、大きいサイズのデータのダウンロードなど、様々なケースで必要になりそうですので、引き続き調べていきます。

blog-page_footer_336




blog-page_footer_336




-Android

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Android StudioのInstant Runの種類

1 はじめに2 概要3 全部で3種類4 コールドスワップになる条件5 ビルドおよびデプロイが実行される条件6 再実行について7 参考ページ8 さいごに はじめに はじめまして、nomuraと申します。 ...

Android 11でdeprecatedになったAsyncTask対応Kotlin編

1 はじめに2 基本的な対応2.1 対応後のサンプル3 Coroutinesで実装4 最後に5 おすすめ書籍 はじめに 以前の記事で、Android 11にてdeprecatedになったAsyncTa ...

GCM 2.0からFCMに移行する(AWS SNS対応版)

1 はじめに2 FCM移行で大事なポイント3 Firebaseプロジェクトへの引き継ぎ3.1 Firebaseの初期設定4 依存ライブラリの変更4.1 “com.google.androi ...

Kotlin ChartsライブラリとCryptowatchAPIでローソク足を描画してみる。

1 はじめに2 CryptoWatchについて2.1 OHLC3 リクエスト方法3.1 CryptoWatchのAPI4 Androidでの実装4.1 実装前の準備4.2 データクラスの作成4.3 リ ...

【Kotlin】RecyclerViewAdapterを使ってリスト表示

1 はじめに2 GradleファイルにRecyclerViewの設定を追加する3 レイアウトファイルの作成4 Adapterクラスの追加5 Activityファイルへの追加6 さいごに7 おすすめ書籍 ...

フォロー

blog-page_side_responsive

2018年6月
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。