內容介紹
《Android多媒體開發高級編程——為智慧型手機和平板電腦開發圖形、音樂、視頻和富媒體套用》使用清晰、直觀的示例介紹了Android SDK中豐富的多媒體功能,有助於您開發能夠創建、播放和共享多媒體的優秀Android應用程式。許多Android設備本身就是照相機、相冊、攝像機、電影播放器、音樂播放器以及錄音機——為何不在應用程式中使用所有這些及更多的功能?這些令人激動的功能將使您的應用程式熠熠生輝,實現更多的用途。本書首先討論攝像頭和成像功能,然後介紹音頻捕獲、處理及合成,最後以視頻和用於多媒體共享的在線上服務作為結束。作為開發人員,您可以跳轉到任何章節,使用討論的內容和示例代碼來創建利用所展示功能的應用程式。所以,無論是對可視化聲波還是編寫觸控螢幕繪圖應用程式感興趣,您都會發現如何使應用程式能夠工作、製作精良以及令人眼前一亮所需要的所有信息。
多媒體應用程式在移動設備上的未來越來越令人興奮。((Android多媒體開發高級編程——為智慧型手機和平板電腦開發圖形、音樂、視頻和富媒體套用》將幫助您以Android多媒體應用程式的方式來創建並定義這一美好的未來。
作者介紹
作 者 簡 介Shawn Van Every是一位資深的移動和流媒體顧問,他幫助公司更好地利用與音頻和視頻相關的新興技術,主要是開發移動和流媒體應用程式。他的客戶範圍從19 Entertainment、MoMA和迪斯尼(Disney),到Morgan Stanley、雷曼兄弟(Lehman Brothers)和紐約大學醫學院(NYU Media School),同時還包括無數的創業公司和其他小型客戶。
此外,Shawn是紐約大學互動式電信計畫(Interactive Telecommunications Program)中通信領域內的一位兼職助理教授。他的教學範圍很廣泛,包括參與性和社會媒體、編程、移動技術以及互動式電話等課程。他於2008年獲得了大衛佩恩卡特(David Payne Carter)卓越教學獎。
他在許多會議和技術展示中演示、展示和介紹了其工作內容(包括O'Reilly的新興電話,O'Reilly的新興技術、ACM Multimedia、Vloggercon以及Strong Angle II)。他是Open Media Developers Summit,Beyond Broadcast(開放媒體開發者峰會,超越廣播)(2006)以及iPhoneDevCamp NYC(NYC iPhone開發夏令營)的聯合組織者。
Shawn在紐約布法羅市的SUNY大學獲得多媒體研究(Media Study)方向的學士學位,並在紐約大學獲得互動式電信方向的碩士學位。
作品目錄
目 錄第1章Android圖像概述 1
1.1使用內置的Camera應用程式
捕獲圖像 1
1.1.1從Camera應用程式返回
數據 2
1.1.2捕獲更大的圖像 5
1.1.3顯示大圖像 6
1.2圖像存儲和元數據 10
1.2.1獲得圖像的Uri 10
1.2.2更新CameraActivity以
使用MediaStore存儲圖像
和關聯元數據 12
1.2.3使用MediaStore檢索圖像 17
1.2.4創建圖像查看應用程式 18
1.2.5內部元數據 22
1.3本章小結 22
第2章構建定製的Camera
應用程式 25
2.1使用Camera類 25
2.1.1CAMERA許可權 25
2.1.2預覽Surface 26
2.1.3實現Camera對象 27
2.1.4匯總 36
2.2擴展定製的Camera套用
程式 39
2.2.1構建基於定時器的Camera
應用程式 40
2.2.2構建時間推移攝影套用
程式 45
2.3本章小結 47
第3章圖像編輯和處理 49
3.1使用內置Gallery應用程式
選擇圖像 49
3.2在點陣圖上繪製點陣圖 53
3.3基本的圖像縮放和旋轉 55
3.3.1輸入矩陣 55
3.3.2Matrix類的方法 58
3.4圖像處理 62
3.4.1ColorMatrix 62
3.4.2改變對比度和亮度 64
3.4.3改變飽和度 65
3.5圖像合成 66
3.6本章小結 72
第4章圖形和觸摸事件 73
4.1畫布繪圖 73
4.1.1點陣圖創建 73
4.1.2點陣圖配置 74
4.1.3創建Canvas對象 74
4.1.4使用Paint對象 75
4.1.5繪製形狀 76
4.1.6繪製文本 79
4.2手指繪圖 83
4.2.1觸摸事件 83
4.2.2在現有圖像上繪製 86
4.2.3保存基於點陣圖的畫布繪圖 90
4.3本章小結 93
第5章Android音頻概述 95
5.1音頻播放 95
5.1.1支持的音頻格式 95
5.1.2通過意圖使用內置的
音頻播放器 96
5.1.3創建自定義的音頻播放
應用程式 98
5.1.4用於音頻的MediaStore 104
5.2本章小結 112
第6章後台和網路音頻 113
6.1後台音頻播放 113
6.1.1服務 113
6.1.2加上MediaPlayer的本地
服務 117
6.1.3控制服務中的
MediaPlayer 121
6.2網路音頻 126
6.2.1HTTP音頻播放 127
6.2.2通過HTTP的流式音頻 132
6.2.3RTSP音頻流 140
6.3本章小結 141
第7章音頻捕獲 143
7.1通過意圖捕獲音頻 143
7.2定製音頻捕獲 146
7.2.1MediaRecorder音頻源 147
7.2.2MediaRecorder輸出格式 147
7.2.3MediaRecorder音頻
編碼器 148
7.2.4MediaRecorder輸出
和錄製 148
7.2.5MediaRecorder狀態機 148
7.2.6MediaRecorder示例 149
7.2.7其他的MediaRecorder
方法 154
7.3將音頻插入MediaStore 160
7.4使用AudioRecord錄製原始
音頻 160
7.5使用AudioTrack播放原始
音頻 163
7.6捕獲和播放原始音頻的
示例 164
7.7本章小結 170
第8章音頻合成與分析 171
8.1數字音頻合成 171
8.1.1播放合成聲音 171
8.1.2生成樣本 174
8.2音頻分析 180
8.2.1捕獲聲音以進行分析 180
8.2.2可視化頻率 181
8.3本章小結 186
第9章視頻概述 187
9.1視頻播放 187
9.1.1支持的格式 187
9.1.2使用意圖播放 188
9.1.3使用VideoView播放 189
9.1.4使用MediaController添加
控制 190
9.1.5使用MediaPlayer播放 191
9.2本章小結 201
第10章視頻進階 203
10.1使用MediaStore檢索
視頻 203
10.1.1來自MediaStore的
視頻縮略圖 204
10.1.2完整的MediaStore
視頻示例 204
10.2網路視頻 211
10.2.1支持的網路視頻類型 211
10.2.2網路視頻播放 213
10.3本章小結 221
第11章視頻捕獲 223
11.1使用意圖錄製視頻 223
11.2添加視頻元數據 226
11.3定製視頻捕獲 229
11.3.1將MediaRecorder用於
視頻 230
11.3.2定製視頻捕獲的完整
示例 239
11.4本章小結 244
第12章使用Web服務的媒體
消費和發布 245
12.1Web服務 245
12.2HTTP請求 246
12.3JSON 248
12.3.1使用JSON提取
Flickr圖像 251
12.3.2位置 259
12.3.3使用JSON和位置提取
Flickr圖像 262
12.4REST 268
12.4.1以XML表示數據 269
12.4.2SAX分析 269
12.5HTTP檔案上傳 274
12.5.1生成HTTP請求 275
12.5.2上傳視頻到Blip.TV 276
12.6本章小結 288