Amazonで買い物してく?ヘッドフォンだけでプッシュ通知の内容を把握したいスマートフォンから出る音声を、もっとプッシュ型の情報伝達手段に使ってもいいのではないか、というのが昔からの持論。Tweak、SpeakingPushNotificationというものを作ってみました。動画は、以下のメンションを読み上げています。持って生まれた制約についてしゃべらせるとミュージックアプリのiPod機能の再生等が止まるので、SpeakingPushNotificationで調停してポーズ/再開処理をしていますが、対処しているのはミュージックアプリのiPod機能だけです。ミュージックアプリのiPod機能のポーズ/再開処理も完璧でなく、不整合が起きる場合がありますが、これ以上きめ細やかに制御するつもりはありません。しゃべらせることと他のオーディオ再生が排他なので、どうしても限界があります。前提となる設定についてプッシュ通知のバナー表示を利用しているので、これを非表示にすると読み上げられません。設定項目SpeakingPushNotificationをインストールすると「設定>SpeakingPushNotification」が出現します。Applications読み上げ対象にするアプリケーション選択(選択しても読み上げが実行されない場合があるようです)アプリケーション選択画面は、以下のようになっています。(JavaScript)読み上げ前に、読み上げ対象のテキストを加工するための設定です。加工にはJavaScriptを使います。ここでは非常に編集しづらいので、テキストエディタで編集してから、ここにペーストすることを想定しています。広い編集領域を確保する方法もあるのですが、なぜかhtmlタグが付加されてしまうので、このようにしています変数msgに通知メッセージが入っているので、加工してmsgに戻します。Identifierが入っているので、アプリ別の処理ができます。デフォルト値である以下の例は、Tweetbot3からの通知のメッセージ中のアットマークを削除、の意。"");}@を消すほかに、やりたいことがあったら縦に連ねて書いていきます。LINK例外的なロケール通常、読み上げはシステムの言語環境に依るので、日本語なら日本語読みされます。例外的に、読み上げる通知メッセージがASCII文字だけで構成されていた場合は、言語環境に依らず英語で読み上げます。判定には、NSStringのsmallestEncodingを使っています。World」の部分が英語でも、日本語読みされます。(JavaScript)機能でASCII文字じゃないものをつぶしてください。iPod機能「ミュージック」で再生される曲名、アーチスト名の読み上げコメントを寄せていただいたholo_holo氏によれば、TweakのNowListeningとの併用で可能のようです。Application」で「ミュージック」をオンにします。Ver.0.0.2以降では曲名も読み上げられます。「ミュージック」が発行するローカル通知なので、「ミュージック」が前面にある間は通知が表示されないようです。曲名とアーチスト名はタブ区切りにした(Ver.0.0.3より)ので、読み上げを加工する場合はそれを利用します。Ver.0.0.4から、NowPlayingアイテムの情報を、各変数から参照できるようにしました。"");}JavaScriptからクリップボードに転送するclipboard変数にテキストを入れておくと、これをクリップボードにコピーします。JavaScriptで加工するに当たり、通知テキストをテスト用に手元に持ってきたい場合に使うと便利かと。=msg;APIが公開されたプッシュ通知アプリとの連携ProwlのようなAPIが公開されたプッシュ通知アプリを使い、サーバから、例えば毎時0分に時刻を知らせるプッシュ通知を送れば、時報になります。サーバ側でRSS等を監視して、変化があったら通知を送る、といったことをやるのも面白いですね。件の評価)免責SpeakingPushNotificationは無保証、無サポートです。自己責任でお使いください。NowListening向けの変更。Cydiaに登録後、以下のリンクをタップしてインストールしてください。インストール後、「設定>SpeakingPushNotification」を設定してください。Javaとかわからないです...。NowLisningでのバナーのアーティストだけじゃなく、曲名も読み上げさせたいんですが、設定をご伝授ください。AM訂正うる覚えで書いちゃったので、Tweak名=Nowlisteningでした。PM朝飯前の素早い対応。ありがとうございます。有料のTweak使ってましたが、多機能ゆえにか、なんか不安定で。乗って贅沢を言わせていただくならオンオフのトグルが欲しいです。Applicationsでそれぞれのスイッチをオンにしさえすれば読み上げられます。JavaScriptは読み上げ内容を加工したいときのみ使います。加工対象のアプリケーションを絞り込みたい場合のみidが関係してきます。