Android 在播放音频和视频方面也是做了相当不错的支持,它提供了一套较为完整的API,使得开发者可以很轻松地编写出一个简易的音频或视频播放器。今天我们开始android中音频和视频使用的学习。

目录导航

  1. 音频的播放
  2. 视频的播放
  3. 友情链接

音频的播放

项目结构如下:一个简单的读取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基础---->音频和视频的使用的更多相关文章

  1. 【Android】20.0 第20章 音频、视频、拍照、语音合成

    分类:C#.Android.VS2015: 创建日期:2016-03-11 一.简介 Android提供了常见的多媒体文件编码.解码机制,你可以直接调用Android提供的API,实现相册.播放器.录 ...

  2. Android学习总结(十六) ———— MediaPlayer播放音频与视频

    一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Andr ...

  3. Android四大组件之ContentProvider(二)读取设备上的图片、音频和视频

    Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,通过Content Provider的方式提供给用户.当设备开机或者有SD卡插拔等事件发生时, ...

  4. Web开发——HTML基础(图像、音频和视频内容)

    参考: 参考:HTML中的图像 参考:视频和音频内容 目录: 1.HTML中的图像 1.1 我们如何在网页上放置图像? (1)替代文字(alt) (2)宽度和高度 (3)图片标题 1.2 用图形和图形 ...

  5. 如何让音频跟视频在ios跟android上自动播放

    如何让音频跟视频在ios跟android上自动播放 <audio autoplay ><source src="audio/alarm1.mp3" type=&q ...

  6. 一起学Android之音频视频

    概述 Android多媒体框架支持各种常见的媒体类型,可以很容易地将音频.视频和图像集成到App中.通过MediaPlayer Api,可以从应用程序资源(RAW).文件系统或网络上数据流资源来播放音 ...

  7. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  8. Android采访开发——2.通用Android基础笔试题

    注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...

  9. Android基础_web通信

    一.发展史 1G 模拟制式手机,只能进行语音通话2G 数字制式手机,增加接收数据等功能3G 智能手机,它已经成了集语音通信和多媒体通信相结合,并且包括图像.音乐.网页浏览.电话会议以及其它一些信息服务 ...

随机推荐

  1. 利用MapReduce实现倒排索引

    这里来学习的是利用MapReduce的分布式编程模型来实现简单的倒排索引. 首先什么是倒排索引? 倒排索引是文档检索中最常用的数据结构,被广泛地应用于全文搜索引擎. 它主要是用来存储某个单词(或词组) ...

  2. windows server 2008 域控安装

    windows server 2008 域控安装:1.dns安装,安装过程会提示.net frame 3.51安装 3.域控安装 原文:地址 http://wenku.baidu.com/link?u ...

  3. 制作Windows Server 2008安装启动U盘

    昨天刚下了Windows server 2008因为没有刻录机,所以我就用2G U盘把Windows server 2008光盘镜像做成U盘安装效果和光盘安装一样. 下面就是制作方法: UltraIS ...

  4. Tomcat负载均衡和集群环境的搭建

    实现此集群的方法参考了网上的很多文章,但由于很多文章都表明是原创的,故无法知道整个操作流程的真正作者是谁.下面就是我用我们真实的项目去实现这个过程.同时修复这过程中一些问题.以下的所有步骤均为亲自测试 ...

  5. swiper中有视频时,滑动停止后视频停止播放

    我们经常能够看到在图片轮播中,穿插着视频的播放,如下图为淘宝的一个产品轮播图,放个视频能够让顾客对产品有个更全面的认识. 我们可以用swiper实现这个功能.用法就跟放图片一样,只是这里把图片换成视频 ...

  6. js类型转换 之 转数字类型

    手动将各类型 转换成 数字类型 JS提供了三种方法: Number(object); parseInt(string, radix); parseFloat(string, radix). 三种方法具 ...

  7. C#中的程序集和命名空间

    C#中的程序集和命名空间 如果说命名空间是类库的逻辑组织形式,那么程序集就是类库的物理组织形式.只有同时指定类型所在的命名空间及实现该类型的程序集,才能完全限定该类型.<精通.NET核心技术-- ...

  8. DOM编程 学习笔记(二)

    学习内容: 1.document对象 2.event对象 该对象将标记型文档进行封装 该对象的作用,是对可标记型文档进行操作 常见操作,想要实现动态效果,需要对节点操作,那么先获取到这个节点,想获取节 ...

  9. 使用ffmpeg的av_read_frame,如何控制连接超时

    最近使用ffmpeg来做一个rtsp的客户端,这过程也遇到不少问题,不过相应都比较好,一路走下来.不过到项目结尾时,且遇到一个比较纠结的问题.那就是客户端在使用的过程中,把rtsp服务器的网断了.这时 ...

  10. Java 阻塞

    对于用ServerSocket 及 Socket 编写的服务器程序和客户程序, 他们在运行过程中常常会阻塞. 例如, 当一个线程执行 ServerSocket 的accept() 方法时, 假如没有客 ...