--記事の履歴--
追記(H20.1.12)公開(H20.1.10)先日zinizumiさんという方からメールを頂きました。
MortPlayerで音楽を聞いている時に電話を着信したら
MortPlayerを終了させるという処理をMortScriptで
作成することができるでしょうか?という内容でした。
ルーチンを少し考えてみたところ出来そうなので
「出来ますよ」と返信したのですが
ついついお節介心でスクリプトを組んでしまいましたw
ご自分で作成されようとしてたみたいでしたので
ああ、お節介お節介www
老婆心ということでご勘弁をw
話は戻ってそもそも何故MortPlayerで音楽を聞いてる時に
電話を着信したらMortPlayerを終了させる必要があるのでしょうか?
zinizumiさんのブログを読んでみて納得しました。
↓zinzumiさんの記事です。
MortPlayer 自動終了への道 on アドエスMortPlayer等のメディアプレーヤーで音楽を聞いているときに
電話を着信した場合、ほとんどのプレーヤーでは通話中は
音楽の再生を一時停止します。
そして通話が終了すると再び音楽を再生し始めるのですが、
音楽を聞いてる時というのはほとんどの場合ヘッドホンをしています。
電話を着信したらヘッドホンを本体から外して電話に出ます。
ここがポイントですね。
つまり通話終了時に再び音楽が再生される時、
ヘッドホンを付けていないので音楽が外部スピーカーから再生されてしまう。
そこで慌ててプレーヤーを停止したり、ヘッドホンを刺したりといった
行動をすることになります。
これをなんとかしようというのが今回のスクリプトの目的です。
ダウンロードはこちらから今回のスクリプトはMortPlayerを対象としているのですが
自分自身MortPlayerを使っていなかったのでTCPMPで作成してあります。
コードの一番上の2行を編集していただければ他のプレーヤーでも対応できます。

起動すると指定されたプレーヤーを起動して常駐します。

電話を着信するとプレーヤーを終了してスクリプトも終了します。
内容的にはスクリプトを起動すると指定されたプレーヤーを起動して
一定の間隔で
電話アプリのレジストリキーを監視します。
電話アプリがアクティブになった場合、それが着信だったらプレーヤーを終了し
スクリプト本体も終了します。着信でなければそのまま監視を続けます。電話着信がないままプレーヤーを終了させた場合は
そのままスクリプト本体も終了します。
着信の判断は電話アプリの特定座標(X100,Y80)のカラーで判断しています。
事前に電話アプリを立ち上げたときと履歴を閲覧している状態での
カラーを取得しておいたので、それ以外のカラーを取得した場合のみ
着信と判断してプレーヤーを終了するようになっています。
(着信画面の色はテーマによって違いますので)
追記
電話アプリの監視方法をレジストリから取得するように変更しました。
HKCU\Software\Sharp\PhoneAppのLockPhone値を取得しています。
待ち受け状態ではLockPhoneは0を返しますので
それ以外の状態になったらアプリを終了するようにしました。
これにより指定座標でのカラーチェックよりもより安定した動作が
期待できると思います。またコードも若干スリムになりました。
oriさんの貴重な情報によりこの改定をすることができました。
大変有用な情報をありがとうございました。
処理の都合上、発信でも終了しますが音楽を再生しながら
電話しようという人もあまりいないと思いますのでそこは対応してませんw
※注意事項いろいろAd[es]専用になります。
無印esや初代では試してはいないのですが着信判断に使用している
電話アプリのX軸100、Y軸80のカラーコードが同じであれば
そのまま動作すると思います。
違う場合は電話アプリの通常時と履歴画面のX100、Y80のカラーコードを
取得しなおしてコードを編集する必要があります。
また、電話アプリのバージョンアップ等で色が変わってしまった場合も
カラーコードを取得しなおしてコードを編集する必要があります。
あとテーマによっては判断処理に使用しているカラーと
着信画面の色が同じ色になってしまう場合もあるかもしれません。
その場合は正常動作しません。
Ad[es]でしか動作確認をしておりません。
無印esや初代でも動作するかもしれませんが未確認です。
また処理の判断に用いているレジストリはW-ZERO3固有のものですので
他の機種では動作いたしません。
最後に
ご使用は自己責任にてお願いします。
着信の判断ルーチンが特定座標のカラーで判断する方法しか
思いつかなかったので実は結構綱渡り的なルーチンです。
もっと有効な判断方法をご存知の方がいたら教えて頂けたら嬉しいです。レジストリから取得できました。ori様貴重な情報ありがとうございました。今回のスクリプトはzinzumiさんのご質問から
自分が勝手に作ったものです。
また記事にすることにも了承していただきました。
ありがとうございました。
同様の悩みを持つ方がいたらお使いください。
スポンサーサイト