2013-12-12 18 views
5

Tôi đang sử dụng một số đối tượng trình phát đa phương tiện để lặp lại một số bản nhạc và tôi muốn biết đó là sự khác biệt giữa việc sử dụng MediaPlayer.create (resId) so với lập trình thủ công các trạng thái khác nhau, sử dụng setDataSource (FileDescriptor) ect .. Tôi vẫn còn mới cho android vì vậy tôi không có ý tưởng.Sự khác biệt giữa triển khai MediaPlayer.create và setDataSource

Trả lời

3

.create() là một phương pháp tĩnh của MediaPlayer lớp, bất cứ khi nào bạn muốn gọi .create() bạn phải gọi nó bằng ClassName.methodName() như MediaPlayer.create()

khi setDataResource() là một phương pháp trong MediaPlayer lớp nó sẽ được gọi thông qua việc thể hiện của MediaPlayer như

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



Bây giờ nếu bạn sử dụng MediaPlayer.create() bạn nên có tệp âm thanh (mp3) trong thư mục raw của mình dưới res. Nếu bạn không có raw thư mục tạo ra một (thường là chúng ta phải tạo raw thư mục bằng tay trong dự án của chúng tôi) và vượt qua resId của file mp3 trong .create() phương pháp như

MediaPlayer mp = MediaPlayer.create(R.raw.mp3FileName);

một lần thứ hai là phương pháp setDataResource() được sử dụng nơi bạn muốn phát tệp âm thanh qua số SDCard nhưng Bạn cần đảm bảo đường dẫn bạn cung cấp cho setDataSource() là chính xác. Cách tốt nhất để làm điều này, thay vì thể xác định rõ tham chiếu đến '/ sdcard /', là sử dụng

android.os.Environment.getExternalStorageDirectory() 
MediaPlayer mediaPlayer = new MediaPlayer(); 
File path = android.os.Environment.getExternalStorageDirectory(); 
mediaPlayer.setDataSource(path + "/fileName.mp3"); 


Bằng cách này bạn có thể nhận được đường dẫn chính xác và chơi mp3 của bạn thông qua SDCard. Hy vọng giải thích này sẽ giúp bạn hiểu. Để biết thêm thông tin, hãy xem MediaPlayer From Android Developer Site

+0

'MediaPlayer.create()' cũng có thể được sử dụng để phát tệp âm thanh từ Uri –

Các vấn đề liên quan