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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-mac平臺(tái)下mp3播放器的實(shí)現(xiàn)(文件)

 

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