如何在android中的资源目录中播放音频文件

时间:2017-10-28 13:19:57

标签: android audio avaudioplayer audio-streaming

我无法播放2秒的小音频片段。我已经尝试过stackOverflow中提到的每个排列,类似于这个问题。即使是似乎对其他人有用的解决方案,对我来说也没有任何作用。 我不知道是不是因为我没有物理设备可以进行测试。

我收到活动未找到错误:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.category.ACTION_VIEW dat=R.raw.song_name.mp3 }

我的音频播放代码:

Uri uri = Uri.parse("R.raw.song_name.mp3");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("audio/*");
intent.setData(uri);
startActivity(intent);

我的文件存储在:

  

RES /原料/ song_name.mp3

我在AndroidManifest.xml上没有做任何额外的事情。 我在模拟器上运行这个应用程序。这会导致此错误吗?

2 个答案:

答案 0 :(得分:2)

您可以使用MediaPlayer类而不是使用Intent。

MediaPlayer mp;
mp=MediaPlayer.create(getApplicationContext(),R.raw.song_name.mp3);
mp.start();

我希望这有效。

答案 1 :(得分:0)

看起来你的代码并不完整,广播和广播 MEDIAPLAYER

我建议你在这里阅读有关媒体播放器的内容 https://developer.android.com/reference/android/media/MediaPlayer.html

您可以在这里查看意图 https://developer.android.com/guide/components/broadcasts.html

//to play a local file you could do it this way 

 //create a new media player
        MediaPlayer mPlayer = new MediaPlayer();
//obtain the source
        try {
            mPlayer.setDataSource("path/to/youraudiofile.mp3");
        } catch (IOException e) {
            e.printStackTrace();
        }
//prepare the player
        try {
            mPlayer.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
//now start the player to begin playing the audio
        mPlayer.start();