这种附加到语音邮件的 wav 文件(32 位浮点 8000hz 单声道)是不同的类型,无法由 Mediaplayer/SoundPool 处理。请参阅 此处的此链接是指向类似 sample.wav 文件的链接,因此您可以根据需要自行尝试。(它是 wav 32 位浮点 11025hz 单声道)
我的第一次尝试是通过 mediaPlayer 播放它,但它抛出 NullPointerException: 这里是 log cat :
- 11-26 16:37:14.969 20287-20287 E/AndroidRuntime: FATAL EXCEPTION:main
- 11-26 16:37:14.969 20287-20287 E/AndroidRuntime:
java.lang.NullPointerException
- 11-26 16:37:14.969 20287-20287 E/AndroidRuntime: at
com.example.bastamib.wavplayer.MainActivity$2.onClick(MainActivity.java:38)
然后我使用了 SoundPool :
public class MainActivity extends Activity {
SoundPool mPlayer;
int mSoundId ;
Button play1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPlayer = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
mSoundId = mPlayer.load(this, R.raw.s2, 1);
Button play1 = (Button) this.findViewById(R.id.buttonPlay1);
play1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mPlayer.play(mSoundId, 0.99f, 0.99f, 0, 0, 1f);
}
});
}
}
但没用,我得到了
11-26 16:31:14.019 7971-7971 W/SoundPool: sample 1 not READY
修理
样品 1 未就绪
我尝试了 Soundpool 示例未准备好,但包括所选答案在内的所有已回复答案均不适合我(基本上没有声音输出)
然后我转向 AudioTrack 解决方案:在此解释Using AudioTrack in Android to play a WAV file
结果是一些静电噪音!一点都不有趣!噗噗
为了解决这个问题,我应用了Android AudioTrack 播放 .wav 文件,只得到白噪声 ,但没有运气应用所有答案,仍然得到静态噪声。
在这里我被困住了!任何帮助将不胜感激。
附注:我知道有一些像“远程 wav”这样的应用程序可以播放 VOIP .wav 文件,但是我需要为我的应用程序制作这个内置功能。