【问题标题】:difference between MediaPlayer.create and setDataSource implementationMediaPlayer.create 和 setDataSource 实现之间的区别
【发布时间】:2013-12-12 07:19:19
【问题描述】:

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

【问题讨论】:

    标签: android methods media-player implementation difference


    【解决方案1】:

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

    setDataResource() 是一个方法在 MediaPlayer 类中,它将通过 MediaPlayer 的实例调用,如

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



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

    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

    【讨论】:

    • 'MediaPlayer.create()' 也可用于从 Uri 播放音频文件
    猜你喜欢
    • 2014-05-25
    • 2014-08-01
    • 2020-09-01
    • 2020-08-14
    • 2014-06-05
    • 2012-11-15
    • 1970-01-01
    • 2011-09-17
    • 2016-06-18
    相关资源
    最近更新 更多