我使用幾個媒體播放器對象來循環一些軌道,我想知道這是使用MediaPlayer.create(resId)與手動編程不同狀態之間的區別,使用setDataSource (FileDescriptor)等..我還是新來的機器人,所以我不知道。MediaPlayer.create和setDataSource實現之間的差異
5
A
回答
3
.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
文件夾在我們的項目),並通過該MP3文件的resId
在.create()
方法類似
MediaPlayer mp = MediaPlayer.create(R.raw.mp3FileName);
第二個是setDataResource()
方法用於要通過SDCard
播放音頻文件的位置,但您需要確保提供給setDataSource()的路徑完全正確。要做到這一點,而不是硬編碼的參考「/ SD卡/」最好的辦法,就是用
android.os.Environment.getExternalStorageDirectory()
MediaPlayer mediaPlayer = new MediaPlayer();
File path = android.os.Environment.getExternalStorageDirectory();
mediaPlayer.setDataSource(path + "/fileName.mp3");
這樣你可以得到正確的路徑,並通過SD卡播放MP3。 希望這個解釋能幫助你理解。欲瞭解更多信息,請參閱MediaPlayer From Android Developer Site
相關問題
- 1. mod_python和mod_wsgi之間的實現差異
- 2. Zend_Rest_Server和Zend_Rest_Controller之間的實現差異
- 3. 現在和現在之間的差異時間拋出1小時差異(C++)
- 4. TabPageIndicator和TitlePageIndicator之間的實現差異是什麼?
- 5. 張量流softmax_cross_entropy_with_logits和sigmoid_cross_entropy_with_logits之間的實現差異
- 6. 流緩衝區實現std :: endl和'\ n'之間的差異
- 7. MVP Passive View和監督控制器之間的實現差異
- 8. winsock和BSD套接字實現之間的差異
- 9. Datanucleus JPA和JDO實現與RDBMS之間的性能差異?
- 10. TensorFlow變量和TensorFlow張量之間的實現差異
- 11. /和/ **之間的差異
- 12. PHP之間的差異()和[]
- 13. '//'和'///'之間的C++差異
- 14. VBA:&和+之間的差異
- 15. 之間的差異和::: ++
- 16. 爲什麼UserStore和RoleStore之間存在實現差異?
- 17. 運算符「==」和「=」之間的差異運算符「==」和「=」之間的差異「==」和「=」
- 18. PHP:差異之間 - >和::
- 19. 實現差異
- 20. 發現圖像之間的差異
- 21. SQL:發現行之間的差異
- 22. trie的實現中的空間差異
- 23. 獲取實例和父實例的屬性之間的差異
- 24. MediaPlayer.create異常
- 25. 發現相同類型的兩個實體之間的差異
- 26. 相同算法的兩個實現之間的性能差異
- 27. 計算現在時間和scheduledstart crm c之間的差異#
- 28. Htaccess - 和*之間的差異:。*和。+
- 29. 總和和+之間的差異?
- 30. Url.Action和Html.RenderActionLink和Html.RenderAction之間的差異
'MediaPlayer.create()'也可用於播放來自Uri的音頻文件 –