0

私はアンドロイドアプリを構築しています。/res/raw フォルダーに wav ファイルが存在する場合は、それを再生したいだけです。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();
        }

これを機能させるには、他に何をすべきですか?

4

1 に答える 1

1

他の方法で wav をロードしてみてください:

 _ring=MediaPlayer.create(_context,R.raw.oldphone_mono);
 _ring.start();
 _ring.setLooping( true );

コメント 1

私の場合、使用する必要はありません_ring.prepare();MediaPlayer.create気にする

コメント 2

if(f.exists())さらに、wav リソースを raw からロードするため、 statemantは必要ありません。

于 2013-08-30T21:32:49.283 に答える