IV. MMAPI Packages
MMAPI bao gồm 3 gói:

  • javax.microedition.media: cung cấp một số giao diện, một exception, và lớp Manager, là điểm truy cập cho việc thu thập tài nguyênphụ thuộc hệ thống như các Player cho media proccessing.
  • javax.microedition.media.control: định nghĩa các loại control cụ thể mà có thể được sử dụng với một Player:  VolumeControl, VideoControl, và những thứ khác.
  • javax.microedition.media.protocol: định nghĩa các giao thức xử lý các control tùy chỉnh. Ví dụ, nó bao gồm các lớp DataSource, là một trừu tượng cho các handler media-control.

Các class, interface và exception đều nằm trong các gói kể trên và được biểu diễn bởi các bảng sau:

Bảng 1: MMAPI Class

Package Class Description
javax.microedition.media Manager Điểm truy cập cho việc thu thập các tài nguyên system-dependent, như các Player cho việc xử lý multimedia.
javax.microedition.media.protocol ContentDescriptor Mô tả các container kiểu media
javax.microedition.media.protocol DataSource Đại diện cho một trừu tượng để xử lý giao thức media bằng cách ẩn các chi tiết về cách dữ liệu được đọc từ một file media hay một server streaming; cung cấp các phương thức cho Player để truy cập vào dữ liệu đầu vào

Bảng 2: MMAPI Interface

Package Interface Description
javax.microedition.media Control Được sử dụng để kiểm soát các chức năng có liên quan đến media-processing, thu được từ giao diện Controllable, được mở rộng bởi Player, cho phép biểu diễn môt Player , ví dụ một VolumeControl cho phép người dùng thiết lập mức âm lượng.
javax.microedition.media Controllable Cung cấp một giao diện cho việc thu thập các Control từ một Player hoặc đối tượng khác
javax.microedition.media Player Được sử dụng để kiểm soát việc biểu diễn dữ liệu media, cung cấp các phương thức quản lý vòng đời của Player
javax.microedition.media PlayerListener Thu nhận các sự kiện phát sinh từ Player
javax.microedition.media TimeBase Nguồn thời gian liên tục tick, sử dụng để đếm sự gia tăng của thời gian, để đồng bộ hóa việc phát lại media bởi nhiều Player
javax.microedition.media.control FramePositionControl Kiểm soát các vị trí chính xác của một khung video cho một Player
javax.microedition.media.control GUIControl Nên được implement bởi bất kỳ điều khiển nào có hỗ trợ một thành phần GUI
javax.microedition.media.control MetaDataControl Được sử dụng để lấy thông tin metadata bao gồm trong các stream media
javax.microedition.media.control MIDIControl Cung cấp quyền truy cập MIDI của các thiết bị
javax.microedition.media.control PitchControl Điều khiển mức độ phát lại của audio output mà không cần thay đổi tốc độ phát lại
javax.microedition.media.control RateControl Điều khển tốc độ phát lại của một Player
javax.microedition.media.control RecordControl Điều khiển việc ghi âm media từ một Player
javax.microedition.media.control StopTimeControl Được sử dụng để xác định một thời gian ngừng cài sẵn cho Player
javax.microedition.media.control TempoControl Kiểm soát tiến độ của một bài hát; implement tại Player cho các tập tin MIDI
javax.microedition.media.control ToneControl Cho phép phát lại một chuỗi các tone do người dùng định nghĩa.
javax.microedition.media.control VideoControl Điều khiển màn hình hiển thị của video, ví dụ như vị trí của nó liên quan đến Canvas, nơi nó được hiển thị
javax.microedition.media.control VolumeControl Điều khiển âm lượng của một Player
javax.microedition.media.protocol SourceStream Sử dụng kết hợp với một DataSource để cung cấp giao diện đầu vào cho một Player; mở rộng giao diện điều khiển và do đó có thể cung cấp các loại control cụ thể

Bảng 3: MMAPI Exception

Package Exception Description
javax.microedition.media MediaException Báo cáo một exception bất ngờ trong phương thức xử lý media

Lưu ý: MMAPI không bắt buộc các kiểu hay các giao thức media cụ thể nào, mà chúng được xác định bởi profile của người dùng. Tuy nhiên, để sử dụng chúng đòi hỏi phải có tối thiểu 1 type và 1 protocol media, và ứng dụng của bạn có thể sử dụng các phương thức Manager.getSupportedContentTypes() và Manager.getSupportedProtocols() để xem thiết bị hỗ trợ bao nhiêu kiểu type và protocol. Và nếu bạn tạo ra một Player với một type hay protocol mà thiết bị không hỗ trợ, nó sẽ ném ra một exception MediaException. Việc chọn lựa các chức năng để thực thi là rất quan trọng, bởi có loại thiết bị thì hỗ trợ playback nhưng không ghi âm, một số khác thì hỗ trợ điều khiển âm lượng và một số khác thì không…

Các bài liên quan:
J2ME Mobile Media API(P1)
J2ME Mobile Media API(P3)