« Python: Nokia E7 における audio モジュール(ボリューム値)の留意点 | トップページ | 明日は、いよいよギター合奏フェスの本番です »

2016年10月27日 (木)

Python: Nokia E7 audio モジュール(ボリューム値指定)の検討

2016-10-27(木)晴れ、のち曇り
 昨日の記事の、Nokia E7におけるaudio モジュール(ボリューム値指定)の問題は、当面はE7にいれたスクリプトを修正して逃げています。しかし、忘れないうちに根本対策をしておくのが良いかなと思います。忘れた頃に、うっかりとスクリプトを入れ換えて、動かないと悩む原因になります。
 問題点と対策案(なるべくすっきりとした案)を検討しました。

問題点:
 audio モジュールのボリューム指定の最大値が大幅に異なる機種がある。
  ・今までの機種は概ね 0~10の値、 0が無音、10が最大音量
  ・E7は0~10000、  0が無音、10000が最大音量
  ・他に数字が異なる機種が有るかどうかは不明(上限が15とか20とか)

上記の場合、E7では今までの最大音量指定の10を設定しても、全く音が出ないレベルになってしまいます。

 機種判定(出来るかどうか不明だが)とか、範囲指定のオプションを設けて設定するのは、いちいち機種の違いを考えないといけないので面倒です。
 で、考えた対策は
 ・ボリューム指定値(人間が意識する指定値)は今まで通り 0~10 を使う。
 ・スクリプト内で実際に音量をセットするときは、最大音量値を調べて、実際に
  セットする値を計算して使用する(指定値の10が最大音量値に相当する
  ものとして計算する)。

と言うことにしました。これですと、今までのオプション指定ファイルや、操作上の数値は同じにすることが出来ます。
その機種の最大音量値は、audioモジュールの max_volume で調べることが出来ます。
実際にPythonが携帯電話にセットすべきボリューム指定値は

 max_volume で調べた最大音量値 * (ボリューム指定値 / 10.0)

で計算してセットすることにします。
 これで、今までの処理やオプション指定ファイルの変更を少なくすることが出来そうです。
 今更な機種のスクリプトですが、自分で使っていることと、頭の体操のために保守を続けています。後は、実際にスクリプトを変更しないといけないですね。

|

« Python: Nokia E7 における audio モジュール(ボリューム値)の留意点 | トップページ | 明日は、いよいよギター合奏フェスの本番です »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/64409662

この記事へのトラックバック一覧です: Python: Nokia E7 audio モジュール(ボリューム値指定)の検討:

« Python: Nokia E7 における audio モジュール(ボリューム値)の留意点 | トップページ | 明日は、いよいよギター合奏フェスの本番です »