編輯:關於android開發
分類:C#、Android、VS2015;
創建日期:2016-03-11
Android提供了常見的多媒體文件編碼、解碼機制,你可以直接調用Android提供的API,實現相冊、播放器、錄音、攝像等功能。換言之,你可以通過Activity和Intent,直接訪問各種多媒體文件或流數據(本地媒體文件、外部存儲文件、資源文件、URL指定的音頻視頻網絡流)。
本章要點:
l 音頻和視頻播放:MediaPlayer類。
l 播放視頻播放:MediaPlayer類、MediaController類和VideoView控件。
l 錄制音頻和視頻:MediaRecorder類。
這一章主要介紹音頻、視頻、拍照、截圖、語音轉換為文字、文字轉換為語音等相關的基礎知識。
由於這一章播放的文件都保存在這兩個文件夾下,所以先把這兩者之間的區別說一下。
1、相同點
這兩個文件夾下的文件打包後都會以獨立文件的形式保存在apk安裝包中,原來的文件是什麼格式還是什麼格式,都不會被編譯到可執行的二進制文件中。
2、不同點
(1)Resources/raw文件夾下不能再包含子文件夾,而Assets文件夾下還可以再繼續創建子文件夾。
(2)Resources/raw文件夾下的文件會被映射到Resource.Designer.cs文件中,因此項目中可直接使用文件的資源ID訪問它(即Resource.Id.不帶擴展名的文件名),該文件夾的作用相當於WPF項目中“鏈接的資源”文件類型;Assets文件夾下的文件則不會被映射到Resource.Designer.cs文件中,只能通過AssetManager類來訪問它,該文件夾的作用相當於WPF項目中的“內容”文件類型。
3、讀取數據流
假如保存到這兩個文件夾下的文件名都是abc.mp3,則
讀取Resources/raw下文件流的方式如下(資源id就是不帶擴展名的文件名):
System.IO.Stream stream = Resources.OpenRawResource(Resource.Id.abc);
讀取Assets下的文件流的方式如下(用帶路徑和擴展名的文件名指定,如果沒有子文件夾,可直接寫文件名):
System.IO.Stream stream = Resources.Assets.Open("abc.mp3");
4、用VideoView播放視頻
假如保存到這兩個文件夾下的文件名都是abc.mp4,而且用最常用的VideoView來播放該視頻,下面的辦法演示了如何指定要播放的文件。
播放Resources/raw下的該文件:
VideoView.SetVideoUri(Uri.Parse("android.resource://" + PackageName + "/" + Resorce.Raw.abc));
播放Assets下的該文件:
VideoView.SetVideoUri(Uri.Parse( PackageName + "/Assets/abc.mp4"));
1、運行截圖
2、ch.cs文件中與本章示例相關的代碼
chItems.Add(new Chapter() { ChapterName = "第20章 音頻、視頻、拍照、截圖", ChapterItems = new ChItem[] { new ChItem { type=typeof(ch2001MainActivity), Title="例20-1 音頻播放基本用法", Desc = "演示音頻播放的基本用法" }, new ChItem { type=typeof(ch2002MainActivity), Title="例20-2 視頻播放基本用法", Desc = "演示視頻播放的基本用法" }, new ChItem { type=typeof(ch2003MainActivity), Title="例20-3 相機拍照基本用法", Desc = "演示相機拍照的基本用法" }, new ChItem { type=typeof(ch2004MainActivity), Title="例20-4 屏幕截圖基本用法", Desc = "演示屏幕截圖的基本用法" }, new ChItem { type=typeof(ch2005MainActivity), Title="例20-5 音視頻錄制", Desc = "演示音頻、視頻錄制的基本用法" }, new ChItem { type=typeof(ch2006MainActivity), Title="例20-6 文字語音轉換", Desc = "演示文字轉換為語音、語音轉換為文字的基本用法" }, } });
【微學堂】第22期| Nginx的性能優化分享主題:Nginx的性能優化分享時間:2016年11月24日(周四)20:00特邀講師:李強(撒加)運維幫專家顧問團成員,先後
如何使用Android Studio開發Gradle插件 緣由 首先說明一下為什麼會有這篇文章。前段時間,插件化以及熱修復的技術很熱,Nuwa熱修復的工具NuwaGr
Activity詳解一 配置、啟動和關閉activity,activity詳解先看效果圖: Android為我們提供了四種應組件,分別
使用Eclipse開發Android源碼 1.把eclipse工程配置文件復制到Android源碼根目錄下 cp development/ide/eclipse/.c