1

私の現在のコードはこれです:

int volume = Alert.getVolume(); // reads 100
Alert.setVolume(0);

音量設定は変更されませAlert.mute(true);ん。電話をかけても効果はありません。 Audio.setVolume(0);も機能しません!

Curve 8310でこれを実行しています。別のソフトウェアをインストールしていますが、音量設定を大幅に下げることに成功しています。o 私は何か間違ったことをしていると思います。何か案が ?

4

3 に答える 3

1

Alertでサウンドを再生する場合:

class Scr extends MainScreen implements FieldChangeListener {    
 ButtonField mVolumeUp;
 ButtonField mVolumeDown;
 ButtonField mPlay;
 LabelField mVolumeLabel;
 int mVolumeValue = 50;
 private static final short[] tune = new short[] { 466, 125, 10, 466 };

 public Scr() {
 mVolumeLabel = new LabelField("Volume: " + mVolumeValue);
     add(mVolumeLabel);
     mVolumeUp = new ButtonField("Vol Up", ButtonField.CONSUME_CLICK);
     mVolumeUp.setChangeListener(this);
     add(mVolumeUp);
     mVolumeDown = new ButtonField("Vol Down", ButtonField.CONSUME_CLICK);
     mVolumeDown.setChangeListener(this);
     add(mVolumeDown);
     mPlay = new ButtonField("Play", ButtonField.CONSUME_CLICK);
     mPlay.setChangeListener(this);
     add(mPlay);
 }

 public void fieldChanged(Field field, int context) {
     if (mVolumeUp == field) {
         if (mVolumeValue <= 90)
      mVolumeValue += 10;
      mVolumeLabel.setText("Volume: " + mVolumeValue);
  } else if (mVolumeDown == field) {
      if (mVolumeValue >= 10)
   mVolumeValue -= 10;
      mVolumeLabel.setText("Volume: " + mVolumeValue);
  } else if (mPlay == field) {
      Alert.startAudio(tune, mVolumeValue);
     }
 }
}

RIM 4.5 8310 シミュレーターでテスト済み

于 2009-09-14T14:23:15.327 に答える
1

class を使用している場合javax.microedition.lcdui.Alert、それが問題になる可能性があります。net.rim.device.api.notification.NotificationsManagerクラスとその他のパッケージ クラス/インターフェイスを調べてみてください。

シンプルで丁寧な方法は、ユーザーにユーザープロファイルを手動で変更するよう依頼することです。Blackberry をサイレントに設定しているときに、アプリケーションが異常な音を出す場合 (または、重要な電話を期待しているのにまったく音を立てない場合)、そのアプリケーションをできるだけ早く削除します。

于 2008-12-01T14:33:49.960 に答える
0

ブラックベリーの特定の機能 (エミュレーターではない) は、署名されたコードでのみ機能します。それがボリュームの場合かどうかはわかりませんが、そうなったとしても驚かないでしょう。

于 2008-11-30T11:51:20.897 に答える