2011-01-27 79 views
1

我目前正在开发一个Android应用程序,以不同的时间间隔向用户播放声音。我有工作代码(下面包含),其功能与我的Hero(运行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肯定被称为。

我朋友安装的版本使用e.printStackTrace而不是Log.i,所以logcat中没有任何东西被吐出来。我会试着去拿他的手机把它更新到Log.i的版本,但同时代码有什么明显的错误可能导致这样一个间歇性的问题?

感谢,

回答

2

所以事实证明,更新我原来的帖子中列出的异常处理似乎已经解决了这个问题。

如果您使用的是什么上面的代码,这是值得注意的是,有时e.getMessage()返回null,所以而非

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

使用

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

为了避免任何讨厌FC引发异常时。

对不起,偶然无法回答的问题!

0

不知道,但较旧的Android版本有问题,播放WAV文件。你试图播放这些WAV文件或MP3文件吗?

+0

我已经测试过一个MP3(在模拟器中,有1.6),然后无论我的英雄有(2.2),这两个工作。我不知道x8使用的是什么格式,或者哪个版本的Android(尽管快速谷歌建议2.1)。谢谢! – Dan 2011-01-27 19:03:18

相关问题