freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計-mac平臺下mp3播放器的實現(xiàn)(文件)

2024-12-25 17:25 上一頁面

下一頁面
 

【正文】 ocoa 中最基本的一些類,它們在一個 Mac 應用程序中通常負責對象管理、內(nèi)存管理、容器等相關數(shù)據(jù)結構的操作。 11 Cocoa是一套優(yōu)雅的開發(fā)框架,無論是 iMac桌面應用程序,還是面向 iPhone、iPod、 iTouch的移動應用程序開發(fā),都依賴于 Cocoa 這一強大的快速開發(fā)框架。 Cocoa 是 Mac OS X 上原生支持的應用程序開發(fā)框架,蘋果公司強烈推薦所 有 Mac 開發(fā)人員使用。這樣就將問題分隔開來,有助于在應用程序中封裝各種對象,也有助于代碼復用。通告也能傳遞與事件相關的數(shù)據(jù)。 如果一個類要向 NSNotificatinCenter 發(fā)送一個通知,則需要實現(xiàn) : (void)postNotificationName:(NSString*)notificationName object:(id)notificationSender 此方法是對象 notificationSender 向 NSNotificatinCenter 發(fā)送名為 notificationName的消息。這樣可以減少類之間的關聯(lián)性,有利于程序模塊之間的獨立。當指定的對象的屬性被修改了,允許對象接受到通知的機制。通過使用 categories,可以往已存在的類里面添加新的方法,還可以重載類里面已經(jīng)存在的方法,但是一般不建議這么做,因為一旦重載了已經(jīng)存在的方法,那么原來的那個方法將會失效。 MP3 的全稱應為 MPEG1 Layer3 音頻文件, MPEG(Moving Picture Experts Group)特指活動影音壓縮標準 . MPEG 音頻文件是 MPEG1 標準中的聲音部分,也叫 MPEG 音頻層,它根據(jù)壓縮質(zhì)量和編碼復雜程度劃分為三層,即 Layer Layer Layer3,且分別對應 MP MP MP3 這三種聲音文件,并根據(jù)不同 的用途,使用不同層次的編碼。 ID3V1 包含了作者 、 作曲 、 專輯等信息,長度為 128BYTE。 MAIN_DATA 部分長度是否變化決定于 FRAMEHEADER 的 bitrate 是否變化,一首 MP3 歌曲,它有三個版本: 96Kbps( 96 千比特位每秒)、 128Kbps 和192Kbps。 以下通過用 UML的 用 例圖來對 MP3 播放器 的模塊 進行用戶 功能 需求描述。 歌曲信息管理 模塊實現(xiàn)的功能比較單一,它只有一個功能: 管理歌曲的詳細本地音樂管理 播放控制 歌曲列表管理 歌曲信息管理 底層支持 MP3 播放器模塊 17 信息 。 涉及到 Outline View 的顯示,拖放 等 。 構造的這個數(shù)據(jù)結構都在工程的 FileTree 文件夾里。 ( 3) – outlineView:numberOfChildrenOfItem: 這個方法是返回指定節(jié)點的孩子點的個數(shù)。 例如:我們在實現(xiàn)播放時,在歌曲前面顯示的 ―播放 ‖圖標就是我們重新繪制的。開發(fā)工具版本是 Xcode 。它主要管理軟件開發(fā)工程,協(xié)調(diào)并優(yōu)化開發(fā)工程。本文的開發(fā)是基于 Mac OS X 平臺的,所以選擇 ―Application‖的 ―Cocoa Application‖選項。利用它可以做出很精美的界面,并且把界面和我們的代碼聯(lián)系起來。例如,我們可以打開 存 放在桌面上的 ―music‖文件夾,如果要把整個文件夾里的音樂全部添加到右側(cè)的播放列表里面 去,可以直接選中 ―music‖文件夾后,單擊回車就可以完成音樂的添加。 NSString *bestType = [pboard availableTypeFromArray:supported]。實現(xiàn)的功能就是播放選中的音樂文件、暫停播放、實現(xiàn)上一首、下一首切換、調(diào)節(jié)音樂音量大小 ,并且還能實現(xiàn)水平進度條的動態(tài)顯示、歌曲時間顯示在進度條之后,最后在軟件的 底 端還 要顯示 播放列表里所有歌曲的總時間。 點擊 ―Volume‖按鈕,可以顯示調(diào)節(jié)音量的大小。 [[NSUserDefaults standardUserDefaults] setDouble:[audioPlayer volume] forKey:volume]。 [[NSUserDefaults standardUserDefaults] setDouble:[audioPlayer volume] forKey:volume]。這些操作都只要重寫 tableView 里提供的 DataSource 和 Delegate 方法即可實現(xiàn)。 具體的實現(xiàn) 機制 如圖 44 所示: 圖 4 4 通知具體實現(xiàn)圖 如圖 46 所示,紅色區(qū)域圈出的部分就是播放列表管理的范圍。 另外我們還可以在播放列表里點擊 鼠標右鍵,此時將會彈出如圖 47 所示的菜單,如果你想把其中的幾首歌添加到隊列里循環(huán)播放就可以選擇 ―Add to Queue‖,被選中加入隊列的歌曲前面會有一個 ―+‖的圖標。 如果我們選中 ―Search for Artist ‖就可以打開一個查找的 界面,在文本框中輸入藝術家的名字就可以在播放列表 里迅速定位到這個藝術家所演唱的歌曲。具體實現(xiàn)的流程如圖 45 所示: 圖 4 5 實現(xiàn)列表拖放流程圖 所有上述功能是在 playlistController 類 里實現(xiàn)的。 (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView { if (image != nil) { NSSize imageSize。imageFrame, amp。 } += 3。 [image positeToPoint: operation:NSCompositeSourceOver]。 其中的數(shù)據(jù)也是通過讀取 playlistEntry類里存儲的歌曲信息來顯示的。 if (專輯有圖片? ) 讀取專輯圖片到窗口指定位置 。 本文主要說明了 以下 兩點: (1) 大體介紹了 ObjectiveC 語言和 Cocoa 框架。 目前的系統(tǒng)還需要進一步完善。 (3) 由于沒有做網(wǎng)絡模塊,因此沒有實現(xiàn)歌詞的同步顯示。 30 參考文獻 [1] (美 ) Aaron Hillegass. 蘋果開發(fā)之 cocoa 編程 (第三版 ). 北京: 電子工業(yè)出版社 , . [2] (美 ) 史 蒂文森 . Cocoa 與 ObjectiveC:構建與運行 .南京: 東南大學出版社 , . [3] (美 ) 布克 , 雅克曼 . Cocoa 設計模式 . 北京: 機械工業(yè)出版社 , . [4] (美 ) Stephen G. Kochan. Objectivec 程序設計(第二版) . 北京: 機械工業(yè)出版社 , . [5] (美 ) 達爾林普爾 , 納斯特 . ObjectiveC 基礎教程 . 北京: 人民郵電出版社 , . [6] (美 ) Davidson,D. J 等 .Cocoa 入門-使用 ObjectiveC. 北京: 中國電力出版社 , . [7] (美 ) Steven Mack . 流媒體寶典 . 北京: 電子工業(yè)出版社 , . [8] 蘋果公司 . NSTextFieldCell Class Reference. 蘋果開發(fā)文檔 , 2021. [9] 蘋果公司 . NSTableView Class Reference.. 蘋果開發(fā)文檔 , 2021. [10] 蘋果公司 . NSOutlineView Class Reference.. 蘋果開發(fā)文檔 , 2021. [11] 蘋果公司 . Drag and Drop Programming Topics for Coco. 蘋果開發(fā)文檔 , 2021. [12] 蘋果公司 . NSFileManager Class Reference.. 蘋果開發(fā)文檔 , 2021. [13] 蘋果公司 . Table View Programming Guide. 蘋果開發(fā)文檔 , 2021. [14] 蘋果公司 . Writing an Outline View Data Source. 蘋果開發(fā)文檔 , 2021. [15] 蘋果 公司 . Control and Cell Programming Topics for Cocoa. 蘋果開發(fā)文檔 , 2021. [16] 蘋果公司 . Cocoa EventHandling Guide. 蘋果開發(fā)文檔 ,2021. [17] 蘋果公司 . The ObjectiveC Programming Language. 蘋果開發(fā)文檔 , 2021. [18] Daniel H. Steinberg. Cocoa Programming: A QuickStart Guide for Developers. Pragmatic Bookshelf, . [19] Dave Mark. Learn Cocoa on the Mac. Apress, . [20] Tim Isted. Beginning Mac Programming. Pragmatic Bookshelf, . [21] Michael Trent. Beginning Mac OS。 (4) 如果在每首歌的標題之前顯示歌手的圖片,界面一定可以更加美觀。 (2) 軟件的搜索功能還得繼續(xù)完善,目前的搜索功能還是過于單一簡單,只能按照藝術家、歌曲名搜索播放列表里的歌曲內(nèi)容。 (2) 詳細介紹了 MP3 系統(tǒng) 功能 的實現(xiàn)。 } 29 結束語 本系統(tǒng)的開發(fā)遵循的就是 MVC 的設計模式,使用這個設計模式,可以實現(xiàn)視圖和數(shù)據(jù)的分離,從而可以使程序的模塊化更強,便于移植。 將讀取的信息存入相應的變量 。 } 歌曲信息管理介紹 歌曲的信息管理就是能夠讓我們看到歌曲的詳細信息,包括歌曲名、藝術家、專輯、 時間長度、碼率、 音軌 、專輯圖片 等歌曲的具體信息。 if ([controlView isFlipped]){ += ceil(( + ) / 2)。 if ([self drawsBackground]) { [[self backgroundColor] set]。 27 imageSize = [image size]。核心代碼如 下所示 。 最后,還可以把播放列表里面的任何一首歌曲拖放到其他地方。歌曲就會從播放列表里刪除。 ―Repeat‖按鈕控制播放的模式,具體的模式包括:順序播放、單曲循環(huán)和列表循環(huán)播放。 為了方便編程,減少代碼的書寫量,我們利用了 Cocoa 特有的 綁定 技術,把列表里的每一列和我們 palylistEntry類里的變量綁定起 來。 它 是通過 tableView 實現(xiàn)的。 newVolume = [audioPlayer volumeUp: VOLUME_UP]。 聲音控制的主要代碼如下: (IBAction)volumeDown:(id)sender { double newVolume = [audioPlayer volumeDown: VOLUME_DOWN]。 具體流程如 圖 42 所示 : 23 圖 4 2 播放控制流程圖 點擊 ―上一首 ‖和 ―下一首 ‖按鈕還可以順序的選擇播放的歌曲。 For (NSString *file in [[info draggingPasteboard] propertyListForType:NSFilenamesPboardType]) 22 [urls addObject:[NSURL fileURLWithPath:file]]。 實現(xiàn)打開系統(tǒng)文件夾的偽代碼如下: BOOL FileTree { if(是根節(jié)點) return true; else { if(選中節(jié)點有子節(jié)點?) 統(tǒng)計子節(jié)點個數(shù); 顯示選中節(jié)點得所有 的 子節(jié)點; return true; if (是葉子節(jié)點?) return false; } } 實現(xiàn)添加音樂 拖放 到播放列表的 核心 代碼如下: (BOOL)tableView:(NSTableView*)tv acceptDrop:(id NSDraggingInfo)info row:(int)row dropOperation:(NSTableViewDropOperation)op { NSArray *supported = [NSArray arrayWithObjects:CogUrlsPboardType, NSFilenamesPboardType, iTunesDropType, nil]。 21 第 4 章 MP3 播放器 系統(tǒng)模塊詳細介紹 本地音樂管理模塊介紹 本地音樂管理就是能夠從軟件中打開 瀏覽 系統(tǒng)文件夾,添加本地音樂到播放列表。
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1