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

正文內(nèi)容

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

  

【正文】 如果同時(shí)能夠?qū)崿F(xiàn)一些百度、 google 的音樂(lè)插件,直接在軟件里輸入歌曲或者歌手然后鏈接到百度或者 google,實(shí)現(xiàn)音樂(lè)的下載和播放就更加完美了。所有的編碼工作都是基于 Cocoa 框架利用 ObjectiveC 語(yǔ)言編寫(xiě)的。 顯示歌曲信息的偽代碼如下: 28 void showInfo:( palylistEntry *) palyinfo { 讀取歌曲 artist、 album、 title、 genre、 year、 track、 albumArt 信息 。 = imageSize。 NSRect imageFrame。 此功能適合用于歌曲的列表?xiàng)l目比較多的時(shí)候, 方便查找。它還得管理菜單欄的兩個(gè)按鈕 ―Shuffle‖和 ―Repeat‖。 } 24 圖 4 3 播放控制 歌曲列表管理介紹 歌曲列表管理, 也是本次設(shè)計(jì)的核心模塊之一。 所用的控件是 如圖 43 紅色區(qū)域畫(huà)出的范圍就是播放控制所對(duì)應(yīng) 控制 的界面。 if ([bestType isEqualToString:NSFilenamesPboardType]) { NSMutableArray *urls = [[NSMutableArray alloc] init]。 甚至 可以通過(guò)連線(xiàn)直接把類(lèi)里的方法和界面的按鈕聯(lián)系起來(lái)。里面包含了蘋(píng)果公司的開(kāi)發(fā)文檔,開(kāi)發(fā)人員可以隨時(shí)查閱這些文檔,由于在國(guó)內(nèi)關(guān)于蘋(píng)果方面的書(shū)籍很少,所以我們?nèi)粘5拈_(kāi)發(fā)參考最多的也是蘋(píng)果公司提供的蘋(píng)果開(kāi)發(fā)文檔。 如圖 35 紅色方框標(biāo)記的,這個(gè)是我們?cè)谠O(shè)計(jì)時(shí)添加的一個(gè) ImageCell 控件,該控件用來(lái)顯示我們繪制或者指定的圖片。 要實(shí)現(xiàn)同時(shí)顯示系統(tǒng)的文件夾圖標(biāo),就要實(shí)現(xiàn)重繪 Cell 的方法。 底層支持 模塊又底層開(kāi)發(fā)團(tuán)隊(duì)提供,實(shí)現(xiàn)的功能為 : 實(shí)現(xiàn) mp3 文件的編解碼 。 Kbps(比特位速率),表明了音樂(lè)每秒的數(shù)據(jù)量, Kbps 值越高,音質(zhì)越好,文件也越大, MP3 標(biāo)準(zhǔn)規(guī)定,不變的 bitrate 的 MP3 文件稱(chēng)作 CBR,大多數(shù) MP3 文件都是 CBR 的,而變化的 bitrate 的 MP3 文件稱(chēng)作 VBR,每個(gè)FRAME 的長(zhǎng)度都可能是變化的。 MPEG 音頻編碼的層次越高,編碼器越復(fù)雜,壓縮率也越高, MP1 和 MP2 的壓縮率分別為 4:1 和 6:1 到 8:1,而 MP3 的壓縮率則高達(dá) 10:1 到 12:1,也就是說(shuō),一分鐘 CD 音質(zhì)的音樂(lè),未經(jīng)壓縮需要 10MB 的存儲(chǔ)空間,而經(jīng)過(guò) MP3 壓14 縮編碼后只有 1MB 左右。每次指定的觀(guān)察對(duì)象的屬性發(fā)生變化的時(shí)候, KVO 都會(huì)自動(dòng)的去通知相應(yīng)的觀(guān)察者。 Delegate delegate 是 Cocoa 中廣泛使用的模式,它意味著無(wú)需創(chuàng)建自定義子類(lèi)就可以修改對(duì)象的行為。 cocoa 里的 MVC 設(shè)計(jì)模式和一般的 MVC 設(shè)計(jì)模式又有點(diǎn)區(qū)別:在視圖和模型之間少了一個(gè)連接的關(guān)系,具體如圖 22: 圖 22 MVC 設(shè)計(jì)模式圖 控制器 模型 視圖 12 系統(tǒng)實(shí)現(xiàn) 關(guān)鍵點(diǎn) Notification 每個(gè)運(yùn)行的程序都有一個(gè) NSNotificatinCenter 的成員變量,它的功能類(lèi)似于公告欄。 它是一個(gè)高度面向?qū)ο蟮模?Object Oriented)開(kāi)發(fā)框架。 另外一些則源于 Mac OS X 的內(nèi)核 BSD Unix系統(tǒng)。 (void) setDenominator: (int) d。并且在自己的類(lèi)之間盡量使用低耦合的聯(lián)合依賴(lài)關(guān)系,而少用高聚合的繼承關(guān)系 ,增強(qiáng)模塊之間的獨(dú)立性。而 ObjectiveC 正是通過(guò)從 Smalltalk進(jìn)化而來(lái)的這種語(yǔ)法,實(shí)現(xiàn)了對(duì)這個(gè)面向?qū)ο髮拥闹С帧? 第 2 章,討論本系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù) 。除了 Xcode, Mac OS X 也提供您一整套開(kāi)源的解決方案,比如 GNU Compiler Collection(GCC)。 Mac OS X 目前最新的版本是 ,它作為一款先進(jìn)的操作系統(tǒng)是基于穩(wěn)定的 Unix內(nèi)核而構(gòu)建起來(lái)的。 如 表 1 就是 Mac OS X 和 windows 的一些主要差別。它的 GUI 環(huán)境( Aqua)就完全不是一般 Linux/FreeBSD所使用的 X11。有相當(dāng)多 Mac 軟件開(kāi)發(fā)者喜歡在 UNIX shell 下工作,使用各種 UNIX 工具。 1998 年,蘋(píng)果以 iMac 實(shí)現(xiàn)了 公司復(fù)興 , 2021 年 iPod 誕生,改變了 MP3 播放器的時(shí)代。 Mac OS X 也在這十年之間陸續(xù)推出了 8 個(gè)版本。 此時(shí) 蘋(píng)果才開(kāi)始慢慢的開(kāi)啟了它的另外一個(gè)時(shí)代。它的最底層建基于Unix基礎(chǔ),其代碼被稱(chēng)為 Darwin,實(shí)行的是部分開(kāi)放源代碼。如果是更高流量如 160kb/s以上的 MP3 音頻,則可以對(duì)立體聲的兩個(gè)聲道獨(dú)立編碼,以保存相位信息。 VBR 指文件每秒的信息流量可以變化,其優(yōu)點(diǎn)是在信號(hào)復(fù)雜時(shí)用較多的容量記錄,信號(hào)簡(jiǎn)單時(shí)用較少的容量記錄以有效利 用空間。早期的 MP3 編碼采用的是固定編碼率的方式( CBR ),我們??吹降?128KBPS,就是代表它是以 128KBPS固定數(shù)據(jù)速率編碼 ——可以提高這個(gè)編碼率,最高可以到 320KBPS,音質(zhì)會(huì)更好,自然,文件的體積會(huì)相應(yīng)增大。 ‖一年之后,布蘭登堡成功地將一首《騎兵進(jìn)行曲》的 CD 音樂(lè)壓縮到原來(lái)的五分之一,但由于電腦速度 過(guò)慢,無(wú)法正常解碼。 關(guān)鍵字 : 蘋(píng)果 平臺(tái) , MP3 播放器 , Cocoa V Abstract Along with Apple rise again, in the Mac application development platform to do it again hot, the system is developed in this context. The system is developed under the Mac platform, music player system that can achieve the daily needs of MP3 players. System development is based on Mac OS X39。 界面要求簡(jiǎn)潔,界面的 菜單提示必須都是蘋(píng)果風(fēng)格的,色彩不要 過(guò)于豐富。 系統(tǒng)的開(kāi)發(fā)是基于 Mac OS X 的 Cocoa 框架技術(shù),使用的開(kāi)發(fā)語(yǔ)言是ObjectiveC。 本系統(tǒng)的開(kāi)發(fā) , 設(shè)計(jì)是基礎(chǔ) , 功能是重點(diǎn) 。 1986 年,德國(guó)人卡爾因茨 1993 年, MP3 技術(shù)又得到國(guó)際標(biāo)準(zhǔn)組織(ISO)認(rèn)可,從而成為主流音頻格式。 掩蔽效應(yīng)是 一種心理聲學(xué)模型,在聽(tīng)覺(jué)上表現(xiàn)為有一個(gè)音量或音色特別突出的聲音出現(xiàn)時(shí),其它細(xì)小的聲音會(huì)變得難以被察覺(jué),因而沒(méi)有必要對(duì)所有的聲音細(xì)節(jié)都進(jìn)行編碼,而只需對(duì)容易引起注意的聲音編碼。 M/S 常被用于左右聲道大體相似的情況,先將左右聲道相加 (L+R)得到一個(gè)聲道,再將左右聲道相減 (LR)得到另一個(gè)聲道,然后將這兩個(gè)聲道信息通過(guò)心理聲學(xué)模型和濾波器處理。 Mac OS 可以被分成操作系統(tǒng)的兩個(gè)系列:一個(gè)是老舊且已不被支持的―Classic‖Mac OS(系統(tǒng)搭載在 1984 年銷(xiāo)售的首部 Mac 與其后代上,終極版本是Mac OS 9)。 System 是在 1985 年的 4 月發(fā)布的, 只是 的一個(gè)更新而已,沒(méi)什么太大的變化 。大大改進(jìn)內(nèi)存管理,允許同時(shí)運(yùn)行更多軟件,而且實(shí)質(zhì)上消除了一個(gè)程序崩潰導(dǎo)致其它程序崩潰的可能性。 它開(kāi)始為用戶(hù)創(chuàng)造著需求,讓我們明白原來(lái)可以用這個(gè)產(chǎn)品干這樣的事情,原來(lái)產(chǎn)品可以這樣用。 Windows 和 Mac OS X 都屬于現(xiàn)代的操作系統(tǒng),所以 Windows 在操作系統(tǒng)層級(jí)所提供的功能 ──執(zhí)行 文件與鏈接庫(kù)加載、多任務(wù)與多線(xiàn)程、內(nèi)存管理等 在Mac OS X 上都找得到對(duì)等的 API 和作法。雖然 Apple 有自己的開(kāi)發(fā)環(huán)境 Xcode,但是底層采用 GCC 這件事對(duì)開(kāi)發(fā)者來(lái)說(shuō)是相當(dāng)重要的。Mac OS X 上最常見(jiàn)的 bundle 要屬 .app 結(jié)尾的應(yīng)用程序了。 蘋(píng)果 公司的網(wǎng)上應(yīng)用商店 App Store 的軟件產(chǎn)品更加是琳瑯滿(mǎn)目,上面有很多都是蘋(píng)果發(fā)燒友開(kāi)發(fā)的應(yīng)用,為大家提供方便和更多的選擇。比如: Cocoa 和 Java 分別使用 ObjectiveC 和 Java 語(yǔ)言提供面向?qū)ο蟮拈_(kāi)發(fā)環(huán)境,而 Carbon 提供基于 C/C++語(yǔ)言的開(kāi)發(fā)環(huán)境。 本地音樂(lè)管理包括:瀏覽本地文件夾,添加本地音樂(lè)到播放列表;播放控制包括:音樂(lè)的播放、音樂(lè)的暫停,播放模式控制,上一首、下一 首控制,歌曲音量調(diào)節(jié);歌曲列表管理管理包括:顯示選中的歌曲,顯示 正在播放的歌曲,歌曲列表的排序,歌曲隊(duì)列的添加;歌曲信息管理 只用來(lái)管理 歌曲的詳細(xì)信息,例如:藝術(shù)家、歌曲時(shí)長(zhǎng)、專(zhuān)輯信息、碼率、音軌 等。 ObjectiveC 的運(yùn)行環(huán)境庫(kù)( Runtime Library)完全是由 C 編寫(xiě)的,因此任何一個(gè) ObjectiveC 消息派發(fā)( Message Dispatching),都會(huì)被替換成 ObjectiveC 運(yùn)行環(huán)境中的某個(gè)或某幾個(gè) C 函數(shù)的調(diào)用。亦與C++不同,但和 Java 相同, ObjectiveC 只容許對(duì)象繼承一個(gè)類(lèi)別(不設(shè)多重繼承)。 int denominator。 … end Cocoa框架技術(shù)介紹 Cocoa 為創(chuàng)建應(yīng)用程序提供了一個(gè)功能豐富的支撐層。 AppKit 提供的類(lèi)用于管理視圖,窗口,文檔 ,文本, 圖像,顏色 等。 MVC 范例適用于很多應(yīng)用程序,因?yàn)榭刂破髟谥虚g的協(xié)調(diào)角色使模型對(duì)象無(wú)需知道界面的 狀態(tài)和事件。收到通知的對(duì)象沒(méi)有機(jī)會(huì)建議是否要執(zhí)行動(dòng)作,而且對(duì)象的通知可以有多個(gè)監(jiān)聽(tīng)者。 KVC和 KVO KVC 是一種通過(guò)變量名來(lái)讀取及設(shè)置 變量的方法。使用 categories 增加了程序的靈活性。 Frame 包括一系列的幀,個(gè)數(shù)由文件大小和幀長(zhǎng)決定 。 播放控制 模塊是本系統(tǒng)的核心模塊之一,實(shí)現(xiàn)的功能是: 音樂(lè)的播放 , 音樂(lè)暫停 , 播放模式控制 , 上一首、下一首控制 , 歌曲音量調(diào)節(jié) 。所以outlineView 的顯示數(shù)據(jù)都需要我們自己去組織提供。 ImageCell 的 重繪 Cocoa 中,系統(tǒng)的控件一般是由 control 和 cell 構(gòu)成的, control 控制控件 響應(yīng)系統(tǒng)事件 ,例如單擊等,而 cell 控制控件的外觀(guān)。并且 安裝有 Mac OS X Snow Leopard(雪豹) 操作系統(tǒng) 。 圖 37 Xcode 打開(kāi) 工程 以上 圖 37 就是在 Xcode 打開(kāi)一個(gè)已經(jīng)存在的工程,左邊是 ―分組和文件列表 ‖,右邊是書(shū)寫(xiě)代碼的窗口,菜單欄是構(gòu)建控制常用的一些按鈕,這些按鈕可以自己添加。 實(shí)現(xiàn)打開(kāi)系統(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]。 具體流程如 圖 42 所示 : 23 圖 4 2 播放控制流程圖 點(diǎn)擊 ―上一首 ‖和 ―下一首 ‖按鈕還可以順序的選擇播放的歌曲。 newVolume = [audioPlayer volumeUp: VOLUME_UP]。 為了方便編程,減少代碼的書(shū)寫(xiě)量,我們利用了 Cocoa 特有的 綁定 技術(shù),把列表里的每一列和我們 palylistEntry類(lèi)里的變量綁定起 來(lái)。歌曲就會(huì)從播放列表里刪除。核心代碼如 下所示 。 if ([self drawsBackground]) { [[self backgroundColor] set]。 } 歌曲信息管理介紹 歌曲的信息管理就是能夠讓我們看到歌曲的詳細(xì)信息,包括歌曲名、藝術(shù)家、專(zhuān)輯、 時(shí)間長(zhǎng)度、碼率、 音軌 、專(zhuān)輯圖片 等歌曲的具體信息。 } 29 結(jié)束語(yǔ) 本系統(tǒng)的開(kāi)發(fā)遵循的就是 MVC 的設(shè)計(jì)模式,使用這個(gè)設(shè)計(jì)模式,可以實(shí)現(xiàn)視圖和數(shù)據(jù)的分離,從而可以使程序的模塊化更強(qiáng),便于移植。 (2) 軟件的搜
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1