9. MULTIMEDIA
9.2. Giới thiệu class android.media.MediaPlayer
Sơ đồ dưới đây cho thấy các chu kỳ sống và các hàm chức năng được cài đặt sẵn trong lớp MediaPlayer để điều khiển việc phát các tập tin audio/video. Các hình bầu dục sẽ đại diện cho các trạng thái của các hàm chức năng trong lớp MediaPlayer. Có hai loại vòng cung, loại vòng cung với một mũi tên đại diện cho phương thức gọi đồng bộ, loại vòng cung với hai mũi tên đại diện cho phương thức gọi không đồng bộ.
Hình 2.28: Sơ đồ lớp android.media.MediaPlayer
Từ sơ đồ trạng thái trên người ta có thể thấy một đối tượng MediaPlayer có các trạng thái sau đây:
Idle Khi một đối tượng MediaPlayer được tạo mới hoặc sau khi gọi hàm reset() nó sẽ ở trạng thái Idle, đó là trạng thái rỗi.
Intialized Sau khi gọi hàm setDataSource() để thiết lập dữ liệu, thiết bị sẽ chuyển sang trạng thái khởi tạo.
Prepairing Trạng thái đang chuẩn bị. Gọi các hàm hệ thống để thiết bị chuyển sang trạng thái sẵn sàng phục vụ.
Prepaired Trạng thái đã được chuẩn bị. Thiết bị đã sẵn sàng phục vụ. Started Trạng thái bắt đầu thực hiện việc phát lại một tập tin media. Paused Trạng thái tạm dừng phát tập tin media.
Stopped Trạng thái dừng phát tập tin media. Playback
Completed
Hoàn thành việc phát lại tập tin media. Từ đây ta có thể thực hiện việc phát lại hoặc chuyển tới trạng thái dừng.
End Trạng thái kết thúc. Giải phóng các tài nguyên hệ thống phục vụ việc phát tập tin media.
Error Trạng thái lỗi.
Một số phương thức thường được sử dụng:
Giá trị trả về Tên phương thức chức năng static MediaPlayer
create(Context context, int resid)
Phương thức khởi tạo đối tượng MediaPlayer cho một tài nguyên nhất định.
static MediaPlayer
create(Context context, Uri uri)
Phương thức khởi tạo đối tượng MediaPlayer cho một Uri.
int
getAudioSessionId()
Trả về ID của phiên audio. Id sẽ là 0 nếu xảy ra lỗi.
int
getCurrentPosition()
Lấy về vị trí hiện tại khi đang phát tập tin media. Vị trí này cho ta biết phát tập tin media đã phát được bao nhiêu mili giây.
int
getDuration()
Lấy về tổng thời gian phát của tập tin media.
int
getVideoHeight()
Trả về chiều cao của tập tin video. Giá trị sẽ là 0 nếu không có tập tin video nào được thiết lập cho đối tượng MediaPlayer.
int
getVideoWidth()
Trả về chiều rộng của tập tin video. Giá trị sẽ là 0 nếu không có tập tin video nào được thiết lập cho đối tượng MediaPlayer.
boolean
isLooping()
Kiểm tra đối tượng MediaPlayer có đang được thiết lập vòng lặp hay không.
boolean
isPlaying()
Kiểm tra đối tượng MediaPlayer có đang được phát hay không.
void
pause()
void
prepare()
Chuẩn bị, đồng bộ thiết bị để thực hiện phát tập tin media.
void
prepareAsync()
Chuẩn bị, đồng bộ thiết bị để thực hiện phát tập tin media. Khi bạn gọi prepareAsync() việc phát tập tin media sẽ được phát mà không sử dụng bộ đệm.
void
release()
Giải phóng các nguyên của đối tượng MediaPlayer.
void
reset()
Khởi tạo lại đối tượng MediaPlayer.
void
seekTo(int msec)
Thực hiện phát tập tin media tại một vị trí thời gian mong muốn. Giá trị là 0 tại thời điểm bắt đầu phát.
void
setDataSource(String path) Thiết lập nguồn dữ liệu.
void setDataSource(Context context, Uri uri)
Thiết lập nguồn dữ liệu gồm: bối cảnh phát lại, và địa chỉ URI của nguồn dữ liệu
void
setLooping(boolean looping)
Thiết lập việc phát lặp lại hay không lặp lại.
void setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChan gedListener listener)
void setVolume(float leftVolume, float rightVolume) Thiết lập âm lượng cho thiết bị.
void
start()
Bắt đầu phát hoặc tiếp tục phát sau khi dừng.
void
stop()
Dừng phát tập tin media.