2011-01-27 18 views
1

私は現在、さまざまな間隔でユーザーにサウンドを再生するAndroidアプリケーションを開発中です。私はヒーロー(2.2を実行している)と1.6エミュレータで期待どおりに機能する作業コード(以下に含まれています)を持っています。しかし、それは私の友人Xperia x8で動作しません - 音は再生されません。彼は通知音のセットを持っていて、テキストを受信するとうまくいっています。一部のプラットフォームでAndroid MediaPlayerがサウンドを再生しない

private void prepareAudio(){ 
    alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    mp = new MediaPlayer(); 
    if(alert != null){ 
     try { 
      mp.setDataSource(ctx, alert); 
     } catch (IllegalArgumentException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } catch (SecurityException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } catch (IllegalStateException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } catch (IOException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } 
    } 
    am = (AudioManager)ctx.getSystemService(Context.AUDIO_SERVICE); 
} 

private void notifyUser(){ 
    if(alert != null){ 
     if (am.getStreamVolume(AudioManager.STREAM_ALARM) != 0) { 
      mp.setAudioStreamType(AudioManager.STREAM_ALARM); 
      mp.setLooping(false); 
      try { 
       mp.prepare(); 
      } catch (IllegalStateException e) { 
       Log.i("Notify User", e.getMessage()); 
      } catch (IOException e) { 
       Log.i("Notify User", e.getMessage()); 
      } 
      mp.start(); 
     } else { 
      Log.i("Notify User", "Alarm volume zero"); 
     } 
    } else { 
     Log.i("Notify User", "Uri is null"); 
    } 
    long[] pattern = {0,200,300,600}; 
    v.vibrate(pattern, -1); 
} 

PrepareAudioは、私たちがサウンドを再生するたびにクラスを初期化し、notifyUserに呼ばれています。電話はいつも振動するので、notifyUserは間違いなく呼び出されています。

私の友人がインストールしたバージョンではLog.iではなくe.printStackTraceが使用されているので、logcatには何も出ていません。 Log.iのバージョンにアップデートするように電話をかけようとしていますが、その間に断続的な問題を引き起こす可能性のあるコードに間違いがありますか?

おかげで、

答えて

2

元の投稿に記載されているように例外処理を更新すると、問題が修正されたようです。

あなたは何のために上記のコードを使用している場合、それはどんな厄介を避けるために

Log.i("Notify User", e.getMessage() + ""); 

を使用し、時にはe.getMessage()がnullを返し、そうではなく

Log.i("Notify User", e.getMessage()); 

ことは注目に値します例外がスローされたときのFC。

ご迷惑をおかけして申し訳ありません。

0

わからないが、Androidの以前のバージョンでは、WAVファイルを再生する問題を抱えていました。これらのWAVファイルやMP3ファイルは再生しようとしていますか?

+0

私はmp3(エミュレータでは1.6)でテストし、次にヒーローが持っているもの(2.2で)はどちらも動作します。私はx8がどのようなフォーマットを使用しているのか、どのバージョンのAndroidを使っているのかはわかりません(ただし、簡単なGoogleでは2.1を示唆しています)。ありがとう! – Dan

関連する問題