特定のアプリの音量をセットできないかという話-その2

さて、昨日はまず音量セットして、アプリ起動したらいいんじゃないのー?ってことでやってみましたけど、実はあれだけだとダメっていうのは、なんとなくわかりつつもそのままにしといたんです。

まずは試してみることから始めるということで。

それから、AudioManagerだけじゃなくて、SoundPoolっていう再生方法もあって、それはむかーし書いてます。(http://goo.gl/hGDCX)

それで、大前提になる話がありまして、次の図を見てください。

ss

Inkscapeでちょっと描きだしたらおもしろくてとまんなくなっただけなのでだいぶへたくそな図ですが、気にせず載せておきますね。

 

AudoManagerを取ってくるためにはSystemServiceさんにAudioServiceのこと教えて!と頼みます。

教えてもらった情報を頼りにAudioManagerさんに音ならしてーって頼むと音が再生されます。

大体は、こういう手順で音がなります。

 

昨日のだと、音量を設定してしまってるので「呼び出し音全体が小さくなる」ということになるわけです。それじゃ、実は役立たずなんで、もっと方針を変えないとダメってことになります。

 

ざーっと考えると、次のようになるかと思います。

  • なまずさんがAudioManagerに再生を頼んでいるときに音を横取りする
  • ならそうとしてる音量ではなく、こちらで望む音量で音をならす
  • なにごともなかったかのようになまずさんには仕事してもらう

という感じになるかと思われます。ただ、なまずさんは、着信音を使っているらしく、ひょっとしてRingtone使って音ならしてるのだろうかというのがすごく気になります。

それにたぶん、Serviceとして常駐して通知したりもするので、その辺りで「なまずが音出した」っていうのを監視する作業が必要になります。そうしないと、なまず以外の音まで小さくなって、本来の目的からはずれていきますので。

 

と、まあ、思っていることをまとめているところなのですが、なんかいい方法ないかなーと次は困ったときのソース頼みでSDKのAudioManager周りを読んで調べてみようと思います。

そんなわけで、まだまだ続くような気がします。めずらしく図解入りで続きそうです。

広告

About sato_c

小学生の頃にインベーダーゲームやPC-8001やApple][といったものを知ってしまい、それ以降ずーっとゲーム好き。でも、あんまりうまくはありません。 仕事は当初はゲーム関係のプログラムやサウンドをやっていましたが、WEB関係を通ったあと、遊技機関係のプログラムやサウンドをやっています。あまり節操がないのか。 現在はJavaですてきなコードを書けるように勉強中。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。