連載
» 2013年04月09日 18時00分 公開

iPad上でアプリ開発は、どこまでできるのか(3):プログラミング初心者でもタッチで手軽にTwitter読み上げHTML5アプリを作れるTouchDevelop (3/4)

[蜜葉優,@IT]

しゃべるTwitter検索アプリを作ろう

 さて、たった1行でTwitterの検索ができてしまいましたが、これだけでは面白くないので、検索したツイートを読み上げるアプリにしてみましょう。

 まず、検索結果を変数に格納します。その後post to wallします。

ツイートを変数に格納する

 次に「foreach」でツイート1つ1つに対して処理を行います。

foreachでツイートを処理する

 TouchDevelopでは「languges → speak」でテキストから音声を出力できます。これを使って、ツイートを読み上げてみましょう。「languges → speak」はキーボードで「speak」と入力するか、予測的オンスクリーンコードキーボードで入力します。

テキストを読み上げるAPI

 まず、第1引数の「en」を「ja」に書き換えて、日本語を読み上げるように設定します。

読み上げ対象の言語設定を英語から日本語に変更

 ツイート1つずつの本文は「e → messages」で取得できるため、以下の画像のように記述して、「play」します。

ツイートを音声として再生

 実行してみましょう。ツイートが読み上げられます……。が、すべてのツイートを一斉に読み上げ始めてしまいます。順番に読み上げるようにScriptにスリープ処理を入れてみましょう。「play」を1度消して、変数化します。

音声を変数に格納す

 次に、変数「sound」を「play」で再生します。

音声を再生

 次に、1ツイートの音声が再生され始めたら、その音声の長さ分をスリープする処理を追記しましょう。スリープ処理は「time → sleep」で行います。

スリープ処理を記述

 音声の長さは「sound → duration」で取得できます。これを使って、1ツイートが読み上げが完了するまでスリープさせます。

音声の長さの時間だけスリープ

 実行してみましょう。検索結果を1つずつ読み上げるアプリの完成です。

もし、一斉に再生されてしまう場合は、「sound → duration」で「infinity」が返って来ている可能性があります。その場合は1度、Webブラウザを閉じて試してみるか、Webブラウザが対応していない場合があります。その場合は「infinity」が返って来ている場合、再生しないなどといった処理が必要になります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。