MediaPlayer播放assert目录下的音频文件

来源:互联网 发布:云计算 校园招聘 编辑:程序博客网 时间:2024/06/05 08:05
public class SeekBarActivity extends Activity implements OnClickListener,OnPreparedListener {private TextView txt;MediaPlayer mediaPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.seekbar);txt = (TextView) findViewById(R.id.txt);txt.setOnClickListener(this);mediaPlayer = new MediaPlayer();}@Overridepublic void onClick(View view) {AssetFileDescriptor descriptor = null;try {descriptor = getAssets().openFd("cat.mp3");} catch (IOException e) {e.printStackTrace();}try {if (mediaPlayer != null) {mediaPlayer.stop();}mediaPlayer.setDataSource(descriptor.getFileDescriptor(),descriptor.getStartOffset(), descriptor.getLength());descriptor.close();mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.setOnPreparedListener(this);mediaPlayer.prepareAsync();} catch (Exception e) {e.printStackTrace();}}@Overridepublic void onPrepared(MediaPlayer player) {mediaPlayer.start();}@Overrideprotected void onDestroy() {super.onDestroy();if (mediaPlayer != null) {mediaPlayer.stop();mediaPlayer.release();}}}


但是写成如下形式,使用Uri做路径的方法不行:

String path = "file://android_assert/" + "cat.mp3";Uri uri = Uri.parse(path);

@Overridepublic void onClick(View view) {String path = "file://android_assert/" + "cat.mp3";Uri uri = Uri.parse(path);try {if (mediaPlayer != null) {mediaPlayer.stop();}mediaPlayer.setDataSource(this, uri);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.setOnPreparedListener(this);mediaPlayer.prepareAsync();} catch (Exception e) {e.printStackTrace();}}


写成如下的sdcard中的绝对路径的形式有可以的。

@Overridepublic void onClick(View view) {String path = "/mnt/sdcard/" + "cat.mp3";Uri uri = Uri.parse(path);try {if (mediaPlayer != null) {mediaPlayer.stop();}mediaPlayer.setDataSource(this, uri);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.setOnPreparedListener(this);mediaPlayer.prepareAsync();} catch (Exception e) {e.printStackTrace();}}


0 0