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. Kafka_Zookeeper_环境搭建使用

    Kafka 安装和测试 1. 简介 kafka (官网地址:http://kafka.apache.org)是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率. i. 消息的发布(publish) ...

  2. /etc/fstab下的挂载类型defaults默认参数

    [root@ob2 data]# cat /etc/fstab -98c0-59dbbcf8b040 / ext4 defaults UUID=e4ab7a0c-500f--bcd2-a77be0ce ...

  3. archdexls主题游戏页面game-play.php有评论时,报错( ! ) Warning: printf(): Too few arguments in D:\wamp\www\wp-content\themes\arcadexls\games-play.php on line 97

    ( ! ) Warning: printf(): Too few arguments in D:\wamp\www\wp-content\themes\arcadexls\games-play.php ...

  4. 10 个强大的JavaScript / jQuery 模板引擎推荐

    模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档.由于在开发过程中,网站或应用程序的界面与数据实现分离,大大提升了开发效率,良好的设计也使得代码重用变得更加容易. 本文 ...

  5. Geometric deep learning on graphs and manifolds using mixture model CNNs

    Monti, Federico, et al. "Geometric deep learning on graphs and manifolds using mixture model CN ...

  6. dlib VS2013 face关键点检测与对齐

    http://blog.csdn.net/hust_bochu_xuchao/article/details/53906223 http://blog.csdn.net/xiamentingtao/a ...

  7. Struts tags--Data tags

      struts tags详解之<s:bean> Description     Bean标签,当然需要一个JavaBean.它的属性值的操作是经由Bean标签中的参数属性来进行赋值.当然 ...

  8. 【转】【MFC】 StretchBlt绘图图像失真

    MFC中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真. 在了解解决方法前先巩固下StretchBlt的用法: StretchBlt 函数功能:函数从源矩形中复制一个位图到目标 ...

  9. 如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化

    DbConnection dbc = database.CreateConnection(); DbTransaction dbtt = null; try { dbc.Open(); dbtt = ...

  10. CentOS 7 Minimal编译安装MySQL5.6

    写在前面,编译安装MySQL的优势:平台无关.可设定参数按需安装.安装的MySQL目录独立(方便清楚).更好的平台耦合及运行性能(很多运维的观点):缺点:编译安装较慢. 一.撤换系统防火墙 注:Cen ...