我正在构建一个Android应用程序。我只想播放一个wav文件,如果它存在于我的/ res / raw文件夹中。以下代码不起作用,因为f.exists()始终求值为false:
String filePathString = "android.resource://"+_context.getPackageName()+"/res/raw/oldphone_mono.wav";
File f = new File(filePathString);
java.io.InputStream inputStream = _context.getResources().openRawResource(com.hello20.R.raw.oldphone_mono);
if(f.exists()) {
Uri ringUri = Uri.parse(filePathString);
_ring = new MediaPlayer();
_ring.setDataSource(_context, ringUri);
final AudioManager audioManager = (AudioManager) _context.getSystemService(Context.AUDIO_SERVICE);
if (audioManager.getStreamVolume(AudioManager.STREAM_RING) != 0) {
_ring.setAudioStreamType(AudioManager.STREAM_RING);
_ring.setLooping(true);
_ring.prepare();
_ring.start();
}
我还应该做些什么呢?
答案 0 :(得分:1)
尝试通过其他方式加载wav:
_ring=MediaPlayer.create(_context,R.raw.oldphone_mono);
_ring.start();
_ring.setLooping( true );
评论1
在我的情况下,您不需要使用_ring.prepare();
。 MediaPlayer.create
负责
评论2
此外,由于您从raw加载wav资源,因此您不需要if(f.exists())
statemant