我正在使用几个媒体播放器对象来循环一些轨道,我想知道这是使用 MediaPlayer.create(resId) 与使用 setDataSource(FileDescriptor) 等手动编程不同状态之间的区别。我还是新手到android所以我不知道。
问问题
2271 次
1 回答
4
.create()
是MediaPlayer
类的静态方法,当你想调用时,你必须通过like来.create()
调用它,而是类中的方法,它将通过like的实例调用ClassName.methodName()
MediaPlayer.create()
setDataResource()
MediaPlayer
MediaPlayer
MediaPlayer mp;
mp.setDataResource("your sdCard File Path...");
现在,如果您使用MediaPlayer.create()
,您的raw
文件夹中应该有音频(mp3)文件res
。如果您没有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。希望这个解释能帮助你理解。有关更多信息,请参阅Android 开发者网站的 MediaPlayer
于 2013-12-12T08:24:35.253 回答