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

目录导航

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

音频的播放

项目结构如下:一个简单的读取sd卡上的音频或者视频资源的应用

aaarticlea/png;base64,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" alt="" />

在Android 中播放音频文件一般都是使用MediaPlayer 类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。

一、 初始化音频的播放,调用MediaPlayer的setDataSource方法,可以接收音频文件的绝对路径,也可以是http或者rtsp的url:

  1. private final static String TAG = "MainActivity";
  2. private MediaPlayer mediaPlayer = new MediaPlayer();
  3.  
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8. initMediaPlayer();
  9. }
  10.  
  11. private void initMediaPlayer() {
  12. Log.i(TAG, "init media player");
  13. try {
  14. File file = new File(Environment.getExternalStorageDirectory(), "test.mp3");
  15. mediaPlayer.setDataSource(file.getPath()); // 指定音频文件的路径
  16. mediaPlayer.prepare(); // 让MediaPlayer进入到准备状态
  17. } catch (Exception e) {
  18. e.printStackTrace();
  19. }
  20. }

涉及到读取sd卡文件的权限:

  1. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

二、 对音频的一系列操作:

  1. // 播放音频
  2. public void playMusic(View view) {
  3. if (!mediaPlayer.isPlaying()) {
  4. mediaPlayer.start(); // 开始播放
  5. }
  6. }
  7.  
  8. // 暂停音频
  9. public void pauseMusic(View view) {
  10. if (mediaPlayer.isPlaying()) {
  11. mediaPlayer.pause(); // 暂停播放
  12. }
  13. }
  14.  
  15. // 停止音频
  16. public void stopMusic(View view) {
  17. if (mediaPlayer.isPlaying()) {
  18. mediaPlayer.reset(); // 停止播放
  19. initMediaPlayer();
  20. }

三、 在ondestroy方法中释放资源:

  1. @Override
  2. protected void onDestroy() {
  3. super.onDestroy();
  4. if (mediaPlayer != null) {
  5. mediaPlayer.stop();
  6. mediaPlayer.release();
  7. }
  8. }

四、 layout文件activity_main.xml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6.  
  7. <VideoView
  8. android:id="@+id/video_view"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content" />
  11.  
  12. <LinearLayout
  13. android:layout_width="match_parent"
  14. android:layout_height="match_parent">
  15.  
  16. <Button
  17. android:layout_width="0dp"
  18. android:layout_height="wrap_content"
  19. android:layout_weight="1"
  20. android:onClick="playVideo"
  21. android:text="PlayVideo" />
  22.  
  23. <Button
  24. android:layout_width="0dp"
  25. android:layout_height="wrap_content"
  26. android:layout_weight="1"
  27. android:onClick="pauseVideo"
  28. android:text="PauseVideo" />
  29.  
  30. <Button
  31. android:layout_width="0dp"
  32. android:layout_height="wrap_content"
  33. android:layout_weight="1"
  34. android:onClick="replyVideo"
  35. android:text="ReplayVideo" />
  36. </LinearLayout>
  37. </LinearLayout>

视频的播放

一、 初始化视频的播放:

  1. private VideoView videoView;
  2.  
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_play_video);
  7. videoView = (VideoView) findViewById(R.id.video_view);
  8. initVideoPath();
  9. }
  10.  
  11. // 初始化播放文件
  12. private void initVideoPath() {
  13. File file = new File(Environment.getExternalStorageDirectory(), "test.mp4");
  14. videoView.setVideoPath(file.getPath()); // 指定视频文件的路径
  15. }

二、 视频的一系列的操作:

  1. // 播放视频
  2. public void playVideo(View view) {
  3. if (!videoView.isPlaying()) {
  4. videoView.start(); // 开始播放
  5. }
  6. }
  7.  
  8. //暂停视频
  9. public void pauseVideo(View view) {
  10. if (videoView.isPlaying()) {
  11. videoView.pause(); // 暂时播放
  12. }
  13. }
  14.  
  15. //重新播放视频
  16. public void replyVideo(View view) {
  17. if (videoView.isPlaying()) {
  18. videoView.resume(); // 重新播放
  19. }
  20. }

三、 在ondestroy方法中释放资源:

  1. @Override
  2. protected void onDestroy() {
  3. super.onDestroy();
  4. if (videoView != null) {
  5. videoView.suspend();
  6. }
  7. }

四、 视频的layout的文件:activity_play_video.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6.  
  7. <VideoView
  8. android:id="@+id/video_view"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content" />
  11.  
  12. <LinearLayout
  13. android:layout_width="match_parent"
  14. android:layout_height="match_parent">
  15.  
  16. <Button
  17. android:layout_width="0dp"
  18. android:layout_height="wrap_content"
  19. android:layout_weight="1"
  20. android:onClick="playVideo"
  21. android:text="PlayVideo" />
  22.  
  23. <Button
  24. android:layout_width="0dp"
  25. android:layout_height="wrap_content"
  26. android:layout_weight="1"
  27. android:onClick="pauseVideo"
  28. android:text="PauseVideo" />
  29.  
  30. <Button
  31. android:layout_width="0dp"
  32. android:layout_height="wrap_content"
  33. android:layout_weight="1"
  34. android:onClick="replyVideo"
  35. android:text="ReplayVideo" />
  36. </LinearLayout>
  37. </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. usb 转 uart cp210x 驱动解析

    USB 转 uart (cp210x.c) 驱动解析 * usb_serial_driver 结构体解析 include/linux/usb/serial.h /** 描述一个usb 串口设备驱动 * ...

  2. ad9 的快捷方式

    TAB:选中元件后,可以显示该元件的属性: PAGEUP:以鼠标所在点为中心,放大视图: PAGEDOWN:以鼠标所在点为中心,缩小视图: HOME:居中,可以从原来光标下的图纸位置,移位到工作区中心 ...

  3. [Django学习]视图

    视图 视图接受Web请求并且返回Web响应 视图就是一个python函数,被定义在views.py中 响应可以是一张网页的HTML内容,一个重定向,一个404错误等等 响应处理过程如下图: 1. UR ...

  4. JavaScriptSerializer 时间格式化

    时间格式化 Model m = , Dt = DateTime.Now }; JavaScriptSerializer js = new JavaScriptSerializer(); string ...

  5. Nutch系列1:简介

    由Java实现的,开放源代码(open-source)的web搜索引擎. Nutch 致力于让每个人都能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎. 为了完成这一宏伟的目标, Nutch ...

  6. Specified VM install not found: type Standard VM, name jdk1.7

    网上抄袭来抄袭去,都说是将“workspace /.metadata/.plugins/org.eclipse.debug.core/.launches/”下的文件都删除掉. 的确,删除了解决问题了, ...

  7. 关于Unity中物理引擎的使用

    物理引擎控制刚体,刚体上面贴上图片,所以看起来就是游戏运行起来的状态 物理世界计算刚体的运行状态,通过贴图显现出运算结果. 一.物理引擎 1:Unity 2D物理引擎基于Box2D封装而成;2: 物理 ...

  8. e681. 基本的打印程序

    Note that (0, 0) of the Graphics object is at the top-left of the actual page, outside the printable ...

  9. Ubuntu server版上使用命令行操作VPNclient

    Ubuntu server版上使用命令行操作VPNclient VPN,虚拟专用网络,这个技术还是非常有用的.近期笔者參与的项目中就使用上了VPN,大概情况是这种.有两个开发团队,在异地,代码服务器在 ...

  10. ASP.NET动态添加用户控件的方法

    本文实例讲述了ASP.NET动态添加用户控件的方法.分享给大家供大家参考.具体实现方法如下: 为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返 ...