Android无法在我的res / raw文件夹中播放wav文件

时间:2013-08-30 21:20:41

标签: android

我正在构建一个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();
        }

我还应该做些什么呢?

1 个答案:

答案 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