分类:C#、Android、VS2015;

创建日期:2016-03-11

一、简介

Android提供了常见的多媒体文件编码、解码机制,你可以直接调用Android提供的API,实现相册、播放器、录音、摄像等功能。换言之,你可以通过Activity和Intent,直接访问各种多媒体文件或流数据(本地媒体文件、外部存储文件、资源文件、URL指定的音频视频网络流)。

本章要点:

l 音频和视频播放:MediaPlayer类。

l 播放视频播放:MediaPlayer类、MediaController类和VideoView控件。

l 录制音频和视频:MediaRecorder类。

这一章主要介绍音频、视频、拍照、截图、语音转换为文字、文字转换为语音等相关的基础知识。

二、Resources/raw文件夹与Assets文件夹的区别

由于这一章播放的文件都保存在这两个文件夹下,所以先把这两者之间的区别说一下。

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 = "演示文字转换为语音、语音转换为文字的基本用法" },    }});

更多相关文章

  1. Android小白成长之初级篇:NDK配置
  2. Android(安卓)Makefile分析
  3. Android(安卓)SDK下载慢的最给力解决办法
  4. 15、Android之Adapter用法总结
  5. 2011.07.14——— android res与assets的区别
  6. Android实现给TableLayou绘制边框的方法
  7. Android读写文件正确实行方法介绍
  8. 实践中探索Android智能手机系统------ROM分区
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android APP OPS移除应用程序项目的修改
  2. SharedPreferences存储数据的使用方法(转)
  3. Android垂直跑马灯效果
  4. Android开源项目分类汇总【老外汇总版本
  5. 在android中获取系统正在运行的进程
  6. Android应用程序键盘(Keyboard)消息处理机
  7. Android外部存储(/storage/emulated/0)无
  8. Android中获取TextView和EditText中的文
  9. android输入法的四种模式(弹出输入法式的
  10. Android启动管理器 - 开源