40

フォルダに複数のオーディオ ファイルがありres/rawます。ListViewオーディオファイル名が含まれていることを示しています。ユーザーが を選択したときに、対応するオーディオ ファイルを再生したいListView。を使用setDataSource(path)しましたが、再生中にエラーが表示されます。そのフォルダからオーディオ ファイルを直接再生するにはどうすればよいですか? または他の方法はありますか?

4

8 に答える 8

58

このコードを onItemClickListener に追加します。

listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View view, int position,long id) {                 
                TextView txtView=(TextView)view.findViewById(R.id.txt_view);
                String fname=txtView.getText().toString().toLowerCase();

                                int resID=getResources().getIdentifier(fname, "raw", getPackageName());

                              MediaPlayer mediaPlayer=MediaPlayer.create(this,resID);
                    mediaPlayer.start();
            }
        });
于 2011-09-21T12:27:22.557 に答える
34

生から再生するためにこれを試してください::

MediaPlayer mPlayer2;
mPlayer2= MediaPlayer.create(this, R.raw.bg_music_wav);
        mPlayer2.start();

マニフェスト ファイルの許可 ::

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

アップデート::

public void onItemClick(AdapterView<?> arg0, View view, int position,long id) {     
  MediaPlayer mPlayer2;
if(position==1)
{
    mPlayer2= MediaPlayer.create(this, R.raw.song1);
            mPlayer2.start();
}else it() .....
}
于 2011-09-21T12:20:29.963 に答える
6
mVideoView = (VideoView) findViewById(R.id.Video_FrontPage);
uri = Uri.parse("android.resource://com.urPackageName/" + R.raw.welcom_video);
mVideoView.setVideoURI(uri);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
mVideoView.start();
于 2011-09-21T12:54:43.537 に答える
1

オーディオ ファイルを res/raw フォルダーに配置し、MediaPlayer の create メソッドから呼び出します。

MediaPlayer.create(this, R.raw.audio_file_name).start();

例えば:

MediaPlayer.create(this, R.raw.sample).start();
于 2021-02-28T13:10:33.587 に答える
0

raw フォルダーからオーディオを再生するには、このメソッドを呼び出します。私の場合、ファイル名はnotificaion.mp3でした:

AudioPlayer().playAudio(mContext, "notificaion")

AudioPlayer クラスは次のとおりです。

class AudioPlayer {
private var mMediaPlayer: MediaPlayer = MediaPlayer()

private fun stopAudio() {
   try {
       mMediaPlayer.release()
   }catch (ex: Exception){
       ex.printStackTrace()
   }

}

fun playAudio(mContext: Context, fileName: String) {
    try {
        stopAudio()
        mMediaPlayer = MediaPlayer.create(mContext, mContext.resources.getIdentifier(fileName, "raw", mContext.packageName))
        mMediaPlayer.setOnCompletionListener {  stopAudio() }
        mMediaPlayer.start()
    }catch (ex: Exception){
        ex.printStackTrace()
    }

    }
}
于 2019-10-07T06:57:09.213 に答える