![](/img/trans.png)
[英]What is the difference between mediaplayer.create() and mediaplayer.prepareAsync()?
[英]difference between MediaPlayer.create and setDataSource implementation
我正在使用幾個媒體播放器對象來循環一些曲目,我想知道使用MediaPlayer.create(resId)與手動編程不同狀態之間的區別,使用setDataSource(FileDescriptor)等...我還是新的到android所以我不知道。
.create()
是MediaPlayer
類的靜態方法,每當你想調用.create()
你必須通過ClassName.methodName()
調用它,如MediaPlayer.create()
而setDataResource()
是MediaPlayer
類中的一個方法,它將通過MediaPlayer
的實例調用
MediaPlayer mp;
mp.setDataResource("your sdCard File Path...");
現在如果您使用MediaPlayer.create()
您應該在res
下的raw
文件夾中有音頻(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。 希望這個解釋能幫助你理解。 有關詳細信息,請參閱Android開發者網站上的MediaPlayer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.