我正在使用多个媒体播放器对象来循环某些曲目,我想知道使用MediaPlayer.create(resId)与手动编程不同状态之间的区别,使用setDataSource(FileDescriptor)等等。我我还是新手,所以我不知道。
答案 0 :(得分:4)
.create()
是MediaPlayer
类的静态方法,无论何时只要您致电.create()
,都必须ClassName.methodName()
拨打MediaPlayer.create()
1} >
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()的路径完全正确。执行此操作的最佳方法是使用
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