專利名稱:互聯網卡拉ok實時播放系統的制作方法
技術領域:
本發明屬于實時互聯網流媒體傳輸技術,特別是互聯網卡拉OK實時播放系統。
互聯網為傳輸各種數據提供了可靠的路徑,在互聯網上可以傳輸各種不同的數據,例如,文字、圖像、音樂等。目前,出現了一種使用互聯網進行卡拉OK娛樂的系統。該設備由日本先鋒公司推出。該系統的主要原理是采用Midi音樂格式,音色還原采用Midi解碼芯片,還原的音質優良。其音樂傳播形式是通過專線下載連接,下載音樂更新區目。下載的圖像存儲在光盤上,并與音樂同步播出。該系統的主要缺點是必須通過專線從互聯網上下載音樂,不能做到實時播放。同時,由于互聯網的帶寬較窄,如果從互聯網上直接進行媒體播放,則播放的質量非常差,無法滿足人們使用卡拉OK進行娛樂本發明的目的是提供一種卡拉OK實時播放系統,改善由于互聯網帶寬的瓶頸造成的實時媒體播放質量低下問題。
本發明的主要特點是包括連接到互聯網上的服務器和連接到服務器的用戶端,文件格式模塊放置在服務器和客戶端之間,客戶端模塊放置在客戶端與播放器之間,所述的文件格式模塊將Midi文件轉換為適合傳統媒體播放的內部格式,所述的客戶端模塊接收文件格式模塊發出的數據,并將數據包含的Midi音樂數據通過Midi設備播放出來。
本發明具有實時播放的特點,中間信息載體在依賴于互聯網的同時,器數據傳輸需求基本不受帶寬的限制。當用戶希望存儲一首曲目時,它將無法得到原傳輸格式的文件,只能以數字錄音的方式獲得一個非常大的音樂文件。所以防止了對歌曲的盜版。
圖1是本發明的系統圖。
圖2是文件格式模塊的流程圖。
圖3是播放模塊的流程圖。
下面結合附圖詳述本發明。
參考圖1,將Midi格式的音樂通過互聯網以流媒體的方式進行傳輸,并在接受的計算機端,通過聲卡輸出在線播放Midi音樂,并在屏幕上顯示隨音樂變色的卡拉OK歌詞。在播放軟件中具備Midi音樂軟波表的選擇功能,以調整Midi音樂的音色。同時為Midi文件配備其它網絡流媒體文件,如,文字、圖片、動畫,及在接受電腦端播放的錄像片斷。通過聲卡,音頻輸出到卡拉OK音響設備,通過帶有電視信號輸出的電腦顯卡,將歌詞、圖片、文字、活動錄像等所有卡拉OK元素輸出到電視,配合音樂同時播放,達到卡拉OK的效果。具體步驟是將midi文件加入歌詞動畫,由文件格式模塊轉換成為支持傳統媒體播放的內部格式。在系統啟動階段,Real平臺裝載每個文件格式模塊,播放模塊創建一個播放對象。在系統初始化階段,模塊調用IRMA格式響應傳給系統一個流的頭數據對象。在傳輸階段,播放模塊接收文件格式模塊所發出的數據包,將數據包中所包含的midi音樂數據通過midi設備播放出來,并將歌詞與音樂同步顯示。
與其它流媒體不同的是,本發明的midi卡拉OK數據以每5秒一個包的方式向客戶機發送,并只在本地緩存中存貯,接受本地播放模塊的直接調用。這甚至不同于網頁的打開形式。因此它具有實時播放的特點,中間信息載體在依賴于互聯網的同時,其數據傳輸需求基本不受帶寬的限制。
當用戶希望存貯一首曲目時,他將無法得到原傳輸格式的文件,他只能以數字錄音的方式,獲得一個非常大的錄音文件,這具有利用音頻設備進行計算機錄音的特點。
數據在本地實時播放,利用了波表技術(一項成熟的,midi音色改制技術)進行音色和音質的修復。其次利用數字信號和視頻的轉換技術,將播放的數字化信息傳置成為普通視頻信號,傳輸于家用電器設備。
以上過程實現的是一個數字化的專有格式的midi卡拉OK文件從服務器向客戶機的實時傳播與處理的過程,以完成實時在線視聽的全部功能。
本軟件是一個基于Realplayer的模塊,編程規范嚴格按照real公司提供的Real SDK(軟件開發工具)相關文檔進行開發,以充分利用SDK提供的RTSP(實時流協議)通信支撐和其它類COM對象支持庫,并且可以和Realplayer所支持的其他多媒體應用(如real text,real picture,realmedia等)進行集成,以使軟件所播放的音樂和顯示的歌詞能夠同其他媒體(如視頻畫面)進行視頻同步,以達到盡可能完美的卡拉OK效果。在軟件開發過程中,一個重要的原則是盡量使用跨平臺的SDK所提供的庫,而盡量少使用windows平臺的函數,并盡量隔離windows平臺的函數,以便將來可以很方便地擴充到其他Wince,Unix,Linux等平臺。
軟件分為兩大部分,服務器端文件格式模塊和客戶端的播放模塊該軟件采用visual C++6.0開發完成,大多數函數均被封裝至C++對象。文件格式模塊參考圖2,該部分為本軟件的關鍵部分,將原本不適合傳統媒體播放的midi文件轉為支持傳統媒體播放的內部格式,并按照每5s一個包(packet)的方式向客戶端發送。這區別于傳統的midi播放方式,如web瀏覽器需要將整個midi文件下載完才能播放,而現在只需傳輸5s的midi的數據即可開始連續播放。
模塊所需支持的接口●IRMAPlugin Real系統用來確定模塊的特點●IRMAFileFormatObjectReal系統用來通知模塊發送頭信息和數據包●IRMAFileResponseReal的本地文件存取接口為異步方式,該接口可以最終獲得文件的實際內容。
系統的流程(按時間順序)1. 啟動階段當Real系統啟動時,它裝載每個文件格式模塊a RMACreateInstance()來創建文件格式模塊的一個新實例。
b IRMAplugin∷GetPluginInfo()它含返回關于模塊的描述信息,包括它的版權。
c IRMAFileFormatObject∷GetFileFormatInfo()它含返回模塊的功能信息○ FileMIMEType表示模塊支持的MIME類型或文件格式的類型。(相應的播放模塊沒有相同的MIME類型)○ FileExtensions給出了模塊支持的文件擴展名(*.kar)○ FileOpenNames給出了文件類型描述以及在客戶端打開文件的對話框中出現的文件類型中顯示出來的文件名。
2.初始化階段模塊調用IRMAFormatRespense∷StreamHeaderRealy來傳給系統一個流的頭數據對象(包含播放時間總長度,需要的網絡帶寬等信息)。a IRMAPlugin∷InitPlugin()模塊完成任何必須的初始化b IRMAFileFormatObject∷InitFileFormat()進行必要的初始化c 當初始化完成以后,文件對象調用文件格式模塊IRMAFileResponse∷InitDone()方法來返回一個狀態碼來通知系統初始化是否完成。d IRMAFileFormatObject∷GetFileHeader()來得到一個對象,該對象包含文件的頭數據e IRMAFileFormatObject∷FileHeaderReady()返回頭數據到系統3.播放階段每個IRMAFileFormatObject∷GetPacket()調用返回IRMAPacket對象組成的包,包含了傳送到Rendering Plugin的數據。文件格式模塊調用IRMAFormatResponse∷PacketReady()來傳遞給系統一個指針到包對象。4.結束階段系統需要另外的包時,它再重復調用GetPacket()以及上述的步驟3,直到模塊調用IRMAFormatResponse∷StreamDone()通知系統流已經結束。
播放模塊該模塊接收文件格式模塊所發出的包,將包中所包含的midi音樂數據通過midi設備播放出來,并將歌詞與音樂同步顯示。
該模塊實現CMidiRender對象支持如下的接口●IRMAPlugin 提供模塊的屬性,通知Realplayer本模塊支持音樂播放和視頻顯示●IRMARender 在該接口中可以獲取文件格式模塊所提供的數據包●IRMASiteUser 在該接口中顯示歌詞●IRMAContextMenuRespone顯示右鍵midi設備顯示菜單,以方便用戶選擇midi播放設備。
除了標準接口,該模塊還實現如下對象CSMFPlayer封裝了windows平臺的midi播放接口,實現了Init,Play,Pause等高層函數,并掛接IRMASiteUser的函數進行歌詞同步顯示系統的流程如下1.啟動階段a)每次在RealPlayer啟動時在用戶開始播入一個MIDI文件時,通過RMAcreatInstanse()創建一個CMidiRerder對象。b)IRMAplugin∷GetPlugInfo返回版權信息。c)IRMARender∷GetRenderInfo返回模塊支持MIME信息(與文件格式的返回信息相同)2.初始化階段a)IRMARender∷Initplugin()進行播放每個MIDI文件所需要的初始化,包括初始化一個CSMFPlayer對象b)IRMARender∷StartStream()開始接收數據包c)IRMARender∷OnHeader()接收信息頭d)IRMARender∷GetDisplaytype()返回歌詞窗口大小3.播放階段a)IRMARender∷OnBegin()開始播放接收第一個數據包b)IRMARender∷OnPaeket()接收后續數據包c)IRMARender∷OnTimesync()與RealPlayer的其他窗口的播放內容進行同步4.播入結束階段a)IRMARenderOnEndofPackets()不再接收數據包b)IRMARenderEndStream()終止音樂和歌詞的顯示
權利要求
1.一種互聯網卡拉OK實時播放系統,包括連接到互聯網上的服務器和連接到服務器的用戶端,其特征在于文件格式模塊放置在服務器和客戶端之間,客戶端模塊放置在客戶端與播放器之間,所述的文件格式模塊將Midi文件轉換為適合傳統媒體播放的內部格式,所述的客戶端模塊接收文件格式模塊發出的數據,并將數據包含的Midi音樂數據通過Midi設備播放出來。
2.按權利要求1所述的系統,其特征在于所述的文件格式模塊將Midi文件轉換為多個數據包。
3.按權利要求1或2所述的系統,其特征在于文件格式模塊將Midi文件轉換為5秒一個的數據包。
4.按權利要求1所述的系統,其特征在于依次向客戶端發送的數據包存儲在本地緩存器中。
全文摘要
一種互聯網卡拉OK實時播放系統。包括連接到互聯網上的服務器和連接到服務器的用戶端,文件格式模塊放置在服務器和客戶端之間,客戶端模塊放置在客戶端與播放器之間。本發明具有實時播放的特點,中間信息載體在依賴于互聯網的同時,器數據傳輸需求基本不受帶寬的限制。當用戶希望存儲一首曲目時,它將無法得到原傳輸格式的文件,只能以數字錄音的方式獲得一個非常大的音樂文件。所以防止了對歌曲的盜版。
文檔編號G06F15/173GK1346109SQ00124968
公開日2002年4月24日 申請日期2000年9月27日 優先權日2000年9月27日
發明者鄒迅 申請人:鄒迅