android基础---->音频和视频的使用
Android 在播放音频和视频方面也是做了相当不错的支持,它提供了一套较为完整的API,使得开发者可以很轻松地编写出一个简易的音频或视频播放器。今天我们开始android中音频和视频使用的学习。
目录导航
音频的播放
项目结构如下:一个简单的读取sd卡上的音频或者视频资源的应用
aaarticlea/png;base64,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" alt="" />
在Android 中播放音频文件一般都是使用MediaPlayer 类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。
一、 初始化音频的播放,调用MediaPlayer的setDataSource方法,可以接收音频文件的绝对路径,也可以是http或者rtsp的url:
- private final static String TAG = "MainActivity";
- private MediaPlayer mediaPlayer = new MediaPlayer();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initMediaPlayer();
- }
- private void initMediaPlayer() {
- Log.i(TAG, "init media player");
- try {
- File file = new File(Environment.getExternalStorageDirectory(), "test.mp3");
- mediaPlayer.setDataSource(file.getPath()); // 指定音频文件的路径
- mediaPlayer.prepare(); // 让MediaPlayer进入到准备状态
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
涉及到读取sd卡文件的权限:
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
二、 对音频的一系列操作:
- // 播放音频
- public void playMusic(View view) {
- if (!mediaPlayer.isPlaying()) {
- mediaPlayer.start(); // 开始播放
- }
- }
- // 暂停音频
- public void pauseMusic(View view) {
- if (mediaPlayer.isPlaying()) {
- mediaPlayer.pause(); // 暂停播放
- }
- }
- // 停止音频
- public void stopMusic(View view) {
- if (mediaPlayer.isPlaying()) {
- mediaPlayer.reset(); // 停止播放
- initMediaPlayer();
- }
三、 在ondestroy方法中释放资源:
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (mediaPlayer != null) {
- mediaPlayer.stop();
- mediaPlayer.release();
- }
- }
四、 layout文件activity_main.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <VideoView
- android:id="@+id/video_view"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <Button
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:onClick="playVideo"
- android:text="PlayVideo" />
- <Button
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:onClick="pauseVideo"
- android:text="PauseVideo" />
- <Button
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:onClick="replyVideo"
- android:text="ReplayVideo" />
- </LinearLayout>
- </LinearLayout>
视频的播放
一、 初始化视频的播放:
- private VideoView videoView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_play_video);
- videoView = (VideoView) findViewById(R.id.video_view);
- initVideoPath();
- }
- // 初始化播放文件
- private void initVideoPath() {
- File file = new File(Environment.getExternalStorageDirectory(), "test.mp4");
- videoView.setVideoPath(file.getPath()); // 指定视频文件的路径
- }
二、 视频的一系列的操作:
- // 播放视频
- public void playVideo(View view) {
- if (!videoView.isPlaying()) {
- videoView.start(); // 开始播放
- }
- }
- //暂停视频
- public void pauseVideo(View view) {
- if (videoView.isPlaying()) {
- videoView.pause(); // 暂时播放
- }
- }
- //重新播放视频
- public void replyVideo(View view) {
- if (videoView.isPlaying()) {
- videoView.resume(); // 重新播放
- }
- }
三、 在ondestroy方法中释放资源:
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (videoView != null) {
- videoView.suspend();
- }
- }
四、 视频的layout的文件:activity_play_video.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <VideoView
- android:id="@+id/video_view"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <Button
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:onClick="playVideo"
- android:text="PlayVideo" />
- <Button
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:onClick="pauseVideo"
- android:text="PauseVideo" />
- <Button
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:onClick="replyVideo"
- android:text="ReplayVideo" />
- </LinearLayout>
- </LinearLayout>
友情链接
android基础---->音频和视频的使用的更多相关文章
- 【Android】20.0 第20章 音频、视频、拍照、语音合成
分类:C#.Android.VS2015: 创建日期:2016-03-11 一.简介 Android提供了常见的多媒体文件编码.解码机制,你可以直接调用Android提供的API,实现相册.播放器.录 ...
- Android学习总结(十六) ———— MediaPlayer播放音频与视频
一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Andr ...
- Android四大组件之ContentProvider(二)读取设备上的图片、音频和视频
Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,通过Content Provider的方式提供给用户.当设备开机或者有SD卡插拔等事件发生时, ...
- Web开发——HTML基础(图像、音频和视频内容)
参考: 参考:HTML中的图像 参考:视频和音频内容 目录: 1.HTML中的图像 1.1 我们如何在网页上放置图像? (1)替代文字(alt) (2)宽度和高度 (3)图片标题 1.2 用图形和图形 ...
- 如何让音频跟视频在ios跟android上自动播放
如何让音频跟视频在ios跟android上自动播放 <audio autoplay ><source src="audio/alarm1.mp3" type=&q ...
- 一起学Android之音频视频
概述 Android多媒体框架支持各种常见的媒体类型,可以很容易地将音频.视频和图像集成到App中.通过MediaPlayer Api,可以从应用程序资源(RAW).文件系统或网络上数据流资源来播放音 ...
- Android开发面试经——2.常见Android基础笔试题
标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报 分类: Android开发(29) 版 ...
- Android采访开发——2.通用Android基础笔试题
注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...
- Android基础_web通信
一.发展史 1G 模拟制式手机,只能进行语音通话2G 数字制式手机,增加接收数据等功能3G 智能手机,它已经成了集语音通信和多媒体通信相结合,并且包括图像.音乐.网页浏览.电话会议以及其它一些信息服务 ...
随机推荐
- usb 转 uart cp210x 驱动解析
USB 转 uart (cp210x.c) 驱动解析 * usb_serial_driver 结构体解析 include/linux/usb/serial.h /** 描述一个usb 串口设备驱动 * ...
- ad9 的快捷方式
TAB:选中元件后,可以显示该元件的属性: PAGEUP:以鼠标所在点为中心,放大视图: PAGEDOWN:以鼠标所在点为中心,缩小视图: HOME:居中,可以从原来光标下的图纸位置,移位到工作区中心 ...
- [Django学习]视图
视图 视图接受Web请求并且返回Web响应 视图就是一个python函数,被定义在views.py中 响应可以是一张网页的HTML内容,一个重定向,一个404错误等等 响应处理过程如下图: 1. UR ...
- JavaScriptSerializer 时间格式化
时间格式化 Model m = , Dt = DateTime.Now }; JavaScriptSerializer js = new JavaScriptSerializer(); string ...
- Nutch系列1:简介
由Java实现的,开放源代码(open-source)的web搜索引擎. Nutch 致力于让每个人都能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎. 为了完成这一宏伟的目标, Nutch ...
- Specified VM install not found: type Standard VM, name jdk1.7
网上抄袭来抄袭去,都说是将“workspace /.metadata/.plugins/org.eclipse.debug.core/.launches/”下的文件都删除掉. 的确,删除了解决问题了, ...
- 关于Unity中物理引擎的使用
物理引擎控制刚体,刚体上面贴上图片,所以看起来就是游戏运行起来的状态 物理世界计算刚体的运行状态,通过贴图显现出运算结果. 一.物理引擎 1:Unity 2D物理引擎基于Box2D封装而成;2: 物理 ...
- e681. 基本的打印程序
Note that (0, 0) of the Graphics object is at the top-left of the actual page, outside the printable ...
- Ubuntu server版上使用命令行操作VPNclient
Ubuntu server版上使用命令行操作VPNclient VPN,虚拟专用网络,这个技术还是非常有用的.近期笔者參与的项目中就使用上了VPN,大概情况是这种.有两个开发团队,在异地,代码服务器在 ...
- ASP.NET动态添加用户控件的方法
本文实例讲述了ASP.NET动态添加用户控件的方法.分享给大家供大家参考.具体实现方法如下: 为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返 ...