【正文】
。這個接口定義了幾種常見的事件,但你 也 可以創(chuàng)建自己的專有活動 。 Player實例在其工作的不同階段產(chǎn)生的事件。要同步兩個 Player實例,讓他們使用相同的時基,可以使用 ( ())碼。您可以通過使用的方法 getTimeBase()默認實例的實例 。每個球員的實例有一個方法來衡量時間使用時基接口。 如果您正在創(chuàng)建一個多媒體的 MIDlet,同時播放多個 Player實例,你會遇到同步問題,例如,確保視頻播放,同時啟動一個單獨的音軌。關(guān)閉數(shù)據(jù),并釋放與它相關(guān)聯(lián)的任何資源,你使用 close()方法,并依此類推。因此,開始播放任何多媒體數(shù)據(jù),可以使用的 start()方法,盡快開始播放。 Player實例是獨立的媒體類型,他們是在玩,只取決于設(shè)備制造商所提供的實施。同樣,在創(chuàng)建一個 Player實例可以發(fā)揮 video/mp4的 MP4擴展結(jié)果的文件。被映射到一個 Player實例,可以通過評估包含的多媒體數(shù)據(jù),并把它映射到一個 MIME類型的文件擴展處理其播放的媒體類型。它提供的方法呈現(xiàn),控制,并與其他玩家同步的數(shù)據(jù),并聽取 播放器 事 項 ,如啟動,停止和暫停數(shù)據(jù)。支持這個概念 SourceStream實例返回 一個正整數(shù)的方法getTransferSize(),如果不支持 則返回 1。例如,視頻數(shù)據(jù)通常是單個幀組成,所以傳輸數(shù)據(jù)的邏輯大小會是這樣一個幀的大小。 在一個 SourceStream有更多的優(yōu)勢。當然,一個特定的流可能不支持隨機尋道操作,這是由反映的 getSeekType()方法。 一個 SourceStream也有隨機可尋址的優(yōu)勢,因為它提供了尋求法(長的地方)。因此,可以作用于每一個人流,獨立于其他流,從而更好地控制比是可能的,否則。從概念上講,多媒體數(shù)據(jù),可組成幾個流。 每個數(shù)據(jù)源是由一個或多個數(shù)據(jù)流,稱為作為 一個 SourceStream(接口在)。你可能并不需要直接使用這個類,除非你要創(chuàng)建一個 DataSource為一個自定義的協(xié)議或位置。例如,一個音頻播放器可以提供音量控制,播放音量增加或減少。一個 播放器 實例解析從一個 數(shù)據(jù)源 實例提供給它的數(shù)據(jù)。播放界面定義在 ,數(shù)據(jù)源定義在。 MMAPI的多媒體數(shù)據(jù)和處理的來源方面,實現(xiàn)與中立,封裝成兩高一級別的對象這些概念:播放器和數(shù)據(jù)源。呈現(xiàn)的數(shù)據(jù) ,并提供控制操作進一步復(fù)雜化的過程。 MMAPI的數(shù)據(jù)已采購后,應(yīng)該能夠處理這些數(shù)據(jù),并呈現(xiàn)在設(shè)備上 ??傊?,不僅可以此數(shù)據(jù)來源于不同的位置,也可以訪問這些地點使用任何目前或未來的協(xié)議。通過數(shù)( HTTP, RTP)不同協(xié)議通過網(wǎng)絡(luò),來自設(shè)備的記錄存儲上的 MIDlet正在運行 。最后,本章介紹 MMAPI的體系結(jié)構(gòu)的幾個小細節(jié) 如功能集和安全方案,以幫助你更好地理解和使用 MMAPI。你會成為熟悉其建筑的細節(jié)和高層次的對象,使其成功的規(guī)范。 MMAPI的 協(xié)議和格式無關(guān)的特點是通過精心設(shè)計,高層次的接口實現(xiàn)。它支持最基本 的音頻功能受限的設(shè)備,并同時提供更強大的設(shè)備先進的多媒體數(shù)據(jù)處理的方式。 與此的 MMAPI的特點和要求的完整的介紹,下一章解決了 MMAPI的架構(gòu),這是理解和使用 MMAPI的關(guān)鍵。 MMAPI中提供這些功能,通過定義一個規(guī)范,協(xié)議和格式無關(guān),從而增加普遍接受和吸收。表 11給出了一個全面的支持作為可選包 MMAPI的設(shè)備清單。 支持 MIDP 自動支持 MMAPI的縮小版本。如前所述, 參數(shù)工具 是由 Sun提供的 Java ME無線工具包捆綁。 作為本規(guī)范的發(fā)展的一部分, Sun發(fā)布了這個 API的參考實現(xiàn)和技術(shù)兼容性工具包( TCK),可以用來證明這個 API的實現(xiàn)是兼容的規(guī)范。一年后, 2020年 6月 26日發(fā)布了一個維護版本( ),納入安全增強和稍作修改,是在這本書中的例子使用的版本。 隨后,其他幾個組織插話,并借給他們支持本規(guī)范的發(fā)展。 誰支持 MMAPI? MMAPI的規(guī)范使用由一 個財團的組織,包括設(shè)備制造商,網(wǎng)絡(luò)運營商和多媒體公司, Java社區(qū)進程( JCP)( ,除了三星 。你仍然可以使用 MMAPI的,只是不可選的,更大的一部分。沒有其他的可選包使得在 。另一方面,如無線消息 API( JSR的 120/205)的可選包是 跟 基于 CLDC的 MID簡表( MIDP)有關(guān)。其他著名的軟件包,包括 Web服務(wù) API( JSR172),即 Mobile 3D GraphicsAPI( JSR184),以及位置 API( JSR179)??伺屠钚牵?Apress出版, 2020年),審查的配置,配置文件和 MIDlet的發(fā)展。 MMAPI的 可使用與不僅僅是 MIDP ,但與任何 Java ME配置文件和配置,提供了一個實現(xiàn)可以為您正在開發(fā)的設(shè)備。 MMAPI是如何 與 MIDP ? MMAPI的是一個為 Java微型版( ME)平臺的可選包。在這本書中,我將開發(fā)使用多媒體的 MIDlet提供的 Java無線工具包 拉 SDK 太陽( 8和第 9章,我也將使用明基(原西門子)國泰航空 75模擬器( Sun無線工具包 將被集成在NetBeans集成開發(fā)環(huán)境( IDE)( 環(huán)境,在這本書中的例子。 總之,要開始使用 MMAPI的支持 Java的設(shè)備開發(fā)的多媒體應(yīng)用,你需要的設(shè)備制造商所提供的 Java無線工具包。 ( ,0342, )由諾基亞提供的工具包,這會捆綁實施。例如,您可以通過諾基亞提供的移動設(shè)備開發(fā)應(yīng)用程序。 大多數(shù)開發(fā)環(huán)境(如 NetBeans和 Eclipse)支持移動應(yīng)用開發(fā),包括此工具包的版本,所以 MMAPI可以 作為一個可選包。該工具包 的 API作為一個可選包安裝一個參 數(shù)工具 ( RI)的配備。這些要求導(dǎo)致的 API接口,是真正的可擴展性,能夠支持陣列設(shè)備上的多媒體格式和協(xié)議的范圍。設(shè)備制造商可以自由選擇他們會支持的格式或播放。 ?支持基本的音頻和音調(diào)產(chǎn)生: 由于 MMAPI的使用作為基礎(chǔ)支持的最低配置 CLDC的,它需要一些支持音頻播放和音代。 ?支持設(shè)備功能的發(fā)現(xiàn): 類似以前的要求,所有設(shè)備都可以進行查詢,發(fā)現(xiàn)自己的能力。這將創(chuàng)建統(tǒng)一管理媒體,它可能會采取任何格式或協(xié)議的程序。發(fā)現(xiàn)新格式和設(shè)備制造商的支持,這使得 MMAPI的極大的可擴展性。設(shè)備制造商提供他們自己的 MMAPI實現(xiàn)和實現(xiàn)接口,支持他們的設(shè)備的多媒體功能。覆蓋在 “怎樣的 MMAPI與 MIDP 配 ? ”一節(jié),在本章稍后的 MMAPI與 MIDP中的地位。通常情況下,有限連接設(shè)備配置( CLDC)上運行,因為在 Java功能的手機,內(nèi)存 128KB和 512KB之間的可用范圍。 MMAPI的特點和要求 MMAPI的設(shè)計啟用了 Java的移動設(shè)備,但設(shè)計是 一般,以至于任何支持 Java的設(shè)備都可以從中受益。其他格式可能需要完全不同的控制,可能會或可能不會是強制性的。 然而,大多數(shù)設(shè)備,支持一些 基本的協(xié)議和格式,例如,最 讓 你通過 HTTP訪問的媒體和音頻和視頻 MP3播放 WAV文件格式。因此,不同的設(shè)備制造商在他們自己的方式實施這個 API,并使其與他們的設(shè)備可以支持的協(xié)議和格式。 鼓勵設(shè)備制造商在他們的支持 Java的設(shè)備使用此 API, MMAPI的專門協(xié)議和格式無關(guān)。流在網(wǎng)絡(luò)上廣播 。有先進的控制,在播放這些文件 。 MMAPI允許你創(chuàng)建支持 Java的設(shè)備,可以發(fā)現(xiàn)和使用的設(shè)備,他們正在運行的多媒體功能的應(yīng)用。如果你已經(jīng)在 了 音頻功能,你 就 已經(jīng) 正在 使用了 MMAPI的子集。本章 涵蓋了關(guān)于 支 持該 API的設(shè)備清單的信息 。這 章向您介紹 MMAPI和解釋 一些使它成為成功典范的因素 。 Sun很早就認識到,音頻和視頻是祖國的未來,并介紹了移動媒體 API( MMAPI)的通過 Java規(guī)范請求( JSR),最大的 MMAPI的要求, 135( 兼容性,同時創(chuàng)造一個規(guī)范,將是未來可能更強大的設(shè)備可擴展。 and even e from user input via an audio or video capture device. In short, not only can this data be sourced from different locations, but also these locations can be accessed using any number of present or future protocols. At a conceptual level, MMAPI can handle all such locations and protocols without getting tied down to a specific protocol or location. After data has been sourced, MMAPI should be able to process this data and make it available for rendering on the device. Processing multimedia data is inherently plex and requires the API to not only understand the data but decode it as well. Rendering the data and providing controls to manipulate it further plicates the process. Because MMAPI is a highlevel interface,it doesn’ t mandate any specific dataprocessing functionality, besides a very low level of audio handling. To achieve this neutrality with regard to sources of multimedia data and processing, MMAPI encapsulates these concepts into two highlevel objects: Player and DataSource. Whereas Player is an interface that deals with processing and playing multimedia data, DataSource is an abstract class that encapsulates the task of data location and retrieval while maintaining protocol independence. The Player interface is defined in the package, and DataSource is defined in the package. Player and DataSource work together to provide multimedia capability in a device. A Player instance parses data supplied to it from a DataSource instance. The Player may then render this data on the device and provide controls to manipula