スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

電話着信時アプリ終了MortScript

--記事の履歴--
追記(H20.1.12)
公開(H20.1.10)


先日zinizumiさんという方からメールを頂きました。
MortPlayerで音楽を聞いている時に電話を着信したら
MortPlayerを終了させるという処理をMortScriptで
作成することができるでしょうか?という内容でした。

ルーチンを少し考えてみたところ出来そうなので
「出来ますよ」と返信したのですが
ついついお節介心でスクリプトを組んでしまいましたw
ご自分で作成されようとしてたみたいでしたので
ああ、お節介お節介www
老婆心ということでご勘弁をw

話は戻ってそもそも何故MortPlayerで音楽を聞いてる時に
電話を着信したらMortPlayerを終了させる必要があるのでしょうか?

zinizumiさんのブログを読んでみて納得しました。
↓zinzumiさんの記事です。
MortPlayer 自動終了への道 on アドエス

MortPlayer等のメディアプレーヤーで音楽を聞いているときに
電話を着信した場合、ほとんどのプレーヤーでは通話中は
音楽の再生を一時停止します。
そして通話が終了すると再び音楽を再生し始めるのですが、
音楽を聞いてる時というのはほとんどの場合ヘッドホンをしています。
電話を着信したらヘッドホンを本体から外して電話に出ます。
ここがポイントですね。
つまり通話終了時に再び音楽が再生される時、
ヘッドホンを付けていないので音楽が外部スピーカーから再生されてしまう。
そこで慌ててプレーヤーを停止したり、ヘッドホンを刺したりといった
行動をすることになります。
これをなんとかしようというのが今回のスクリプトの目的です。

ダウンロードはこちらから

今回のスクリプトはMortPlayerを対象としているのですが
自分自身MortPlayerを使っていなかったのでTCPMPで作成してあります。
コードの一番上の2行を編集していただければ他のプレーヤーでも対応できます。

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

denwaappclose2.png
電話を着信するとプレーヤーを終了してスクリプトも終了します。

内容的にはスクリプトを起動すると指定されたプレーヤーを起動して
一定の間隔で電話アプリのレジストリキーを監視します。
電話アプリがアクティブになった場合、それが着信だったらプレーヤーを終了し
スクリプト本体も終了します。着信でなければそのまま監視を続けます。

電話着信がないままプレーヤーを終了させた場合は
そのままスクリプト本体も終了します。

着信の判断は電話アプリの特定座標(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さんのご質問から
自分が勝手に作ったものです。
また記事にすることにも了承していただきました。
ありがとうございました。

同様の悩みを持つ方がいたらお使いください。
スポンサーサイト

コメントの投稿

非公開コメント

いつも為になる記事で楽しく拝見してます
MortScriptについて教えていただけませんでしょうか
ダウンロードしたファイルをMyDocumentにいれましたが、その後どうすればいいんでしょうか?
\windosのスタートアップにショートカットをすればいいのかと思いましたが電話がなっても終了してくれませんでした
設定方法を教えて下さい

HKCU\Software\Sharp\PhoneAppのLockPhoneの値が,着信・通話時に1になるみたいです.

>taka様
自分のブログを読んでくださってありがとうございます。
わりといいかげんなところもあるのでお恥ずかしいですw
早速ですがMortScriptはインストール済みでしょうか?
自分の書いたスクリプトコードのみでは動作しないのでご確認ください。
またAd[es]のみでしか確認をしていませんので無印esや初代では
動作しないかもしれません。

あと使い方を詳しく書いていませんでしたwすいません。
スクリプト自体にプレーヤーを起動させる命令を組み込んでいますので
そのまま実行していただければプレーヤーを起動し常駐します。
もしくはショートカットを作成して
Windows→スタートメニュー→プログラムに
入れていただければプログラムメニューから
実行できるようになると思います。

初期状態ではTCPMPを起動するようになっています。
変更する場合はテキストエディタ(0号テキストエディタ等)で
編集してください。ワードでは編集できません。

以上でダメな場合はまたご連絡ください。


ori様
やっぱりレジストリで判断できたんですね。
レジストリとにらめっこしてたんですけどわかりませんでした。
早速試してみたいと思います。
非常に貴重な情報をありがとうございました。

アドバイスありがとうございました
MortPlayerに書き換えて無事作動しました
自分はrltodayから起動させているのですが、TCPMPもrltodayに表示しております、同時に起動することはありませんが、名前を変えてそれぞれに使用してみます
改めて、ありがとうございました

電話アプリの監視方法を変更いたしました。
より安定して動作すると思います。

>taka様
お役に立てて嬉しいです。
rltoday人気がありますね。
そっち方面でも色々ネタを考えてみたいと思います。
また遊びに来てくださいね。
プロフィール

みぎろー

HYBRID W-ZERO3
管理人:みぎろー
モバイルな機器を日々愛しんでおります
さしたる記事もございませんが
お付き合いください。

すまーつ工房展示場はこちら

ご用の際はこちら

広告
ウィルコムストア

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
最近の記事
最近のコメント
最近のトラックバック
カテゴリー
RSSフィード
リンク
ブログ内検索
全記事一覧表示

全ての記事を一覧表示する

FC2カウンター

リンクシェア アフィリエイト紹介プログラム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。