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

use*_*038 6 methods implementation android media-player difference

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

Zub*_*med 4

.create()是类的静态方法MediaPlayer,每当你想调用时,.create()都必须通过ClassName.methodName()like来调用它MediaPlayer.create()

,而它setDataResource()是类中的方法,它将通过likeMediaPlayer的实例来调用MediaPlayer

MediaPlayer mp;
mp.setDataResource("your sdCard File Path...");
Run Code Online (Sandbox Code Playgroud)



现在,如果您使用,您的文件夹MediaPlayer.create()中应该有音频(mp3)文件。如果您没有文件夹,请创建一个(通常我们必须在项目中手动创建文件夹)并通过类似方法传递该 mp3 文件的rawresrawrawresId.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");
Run Code Online (Sandbox Code Playgroud)


这样你就可以得到正确的路径并通过SDCard播放你的mp3。希望这个解释能够帮助您理解。有关详细信息,请参阅Android 开发者网站上的 MediaPlayer