MediaPlayer.create和setDataSource实现之间的区别

时间:2013-12-12 07:19:19

标签: android methods media-player implementation difference

我正在使用多个媒体播放器对象来循环某些曲目,我想知道使用MediaPlayer.create(resId)与手动编程不同状态之间的区别,使用setDataSource(FileDescriptor)等等。我我还是新手,所以我不知道。

1 个答案:

答案 0 :(得分:4)

.create()MediaPlayer类的静态方法,无论何时只要您致电.create(),都必须ClassName.methodName()拨打MediaPlayer.create()
setDataResource()MediaPlayer类中的一种方法,它将通过MediaPlayer的实例调用,如同<
p>

MediaPlayer mp;
mp.setDataResource("your sdCard File Path...");



现在,如果你使用MediaPlayer.create(),你应该在raw下的res文件夹中包含音频(mp3)文件。如果您没有raw文件夹创建一个(通常我们必须在我们的项目中手动创建raw文件夹)并在resId方法中传递该mp3文件的.create()

MediaPlayer mp = MediaPlayer.create(R.raw.mp3FileName);

第二个是setDataResource()方法用于你想通过SDCard播放音频文件的方法,但你需要确保你给setDataSource()的路径完全正确。执行此操作的最佳方法是使用

,而不是将引用硬编码为'/ sdcard /'。
android.os.Environment.getExternalStorageDirectory()
MediaPlayer mediaPlayer = new MediaPlayer();
File path = android.os.Environment.getExternalStorageDirectory();
mediaPlayer.setDataSource(path + "/fileName.mp3");


通过这种方式,您可以通过SDCard获得正确的路径并播放您的mp3。 希望这个解释能帮助你理解。有关详细信息,请参阅MediaPlayer From Android Developer Site