Android ApiDemos示例解析(87):Media->MediaPlayer

MediaPlayer构建音乐播放器,你所需知道的一切 使用MediaPlayer构建一个基本的音乐播放器,你所需知道的一些细节与注意事项。 阅读详情

本例介绍了如何使用MediaPlayer类来播放声音或是视频。涉及的Activity有三个:

  • MediaPlayerDemo:主Activity,显示示例列表。
  • MediaPlayerDemo_Audio: 子Activity,用于播放声音,在Launcher中没有图标。
  • MediaPlayerDemo_Video: 子Activity,用于播放视频,在Launcher中没有图标。

其中MediaPlayerDemo 使用四个按钮用于显示例子列表:

点击按钮后,触发子Activity,比如”Play video from local file” 将启动MediaPlayerDemo_Audio

Intent intent = 
 new Intent(MediaPlayerDemo.this.getApplication(), 
 MediaPlayerDemo_Audio.class); 
intent.putExtra(MEDIA, LOCAL_AUDIO); 
startActivity(intent);

运行这个例子,需要准备一些声音和视频资源,对于视频,可以使用手机自带的录像程序录一段视频。

修改MediaPlayerDemo_Audio.java 和MediaPlayerDemo_Video.java 中 的Path 赋值,比如在MediaPlayerDemo_Video.java 的case STREAM_VIDEO:下设置

path = “http://www.imobilebbs.com/download/android/boy.3gp”;

指定从Internet上某个位置在线播放视频的地址,同样可以设置其它声音或是视频对于的文件名,如果放在SD卡上,文件名可以为: /sd card/dcim/Camera/demo.3gp”。

有了这些准备工作,使用MediaPlayer 播放声音或是视频非常简单(用法类似于Java Me中的Player). MediaPlayer 支持从文件或是“流”中播放。MediaPlayer 可以处于多个状态,每个状态能够调用的函数是不同,下图为MediaPlayer 的状态转换图:

对应状态转换,MediaPlayer允许使用Listener来监视它的状态,具体请参见 http://developer.android.com/reference/android/media/MediaPlayer.html

下面结合本例介绍MediaPlayer 的几种用法:

播放本地文件:提供设置DataSource指向一个本地文件。

path = "/sd card/audio/test.mp3"; 
mMediaPlayer = new MediaPlayer(); 
mMediaPlayer.setDataSource(path); 
mMediaPlayer.prepare(); 
mMediaPlayer.start();

播放资源文件中的声音或是视频:


mMediaPlayer = MediaPlayer.create(this, R.raw.test_cbr); 
mMediaPlayer.start();


 从本地或是网络播放视频:

path = "/sd card/dcim/camera/test.3gp"; 
//path = "http://www.imobilebbs.com/download/android/boy.3gp"; 
// Create a new media player and set the listeners 
mMediaPlayer = new MediaPlayer(); 
mMediaPlayer.setDataSource(path); 
mMediaPlayer.setDisplay(holder); 
mMediaPlayer.prepare(); 
mMediaPlayer.setOnBufferingUpdateListener(this); 
mMediaPlayer.setOnCompletionListener(this); 
mMediaPlayer.setOnPreparedListener(this); 
mMediaPlayer.setOnVideoSizeChangedListener(this); 
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);


 

其中Path的可以指向本地文件或是网络资源,并可以设置Media的事件处理器。 MediaPlayer播放视频时需使用SurfaceView 来显示图像,可以参见Android ApiDemos示例解析(57):Graphics->CameraPreview

 

25届电信保研经验贴(空天院) 学校:中九专业:电子信息工程加权:92.89绩点:3.91/4.0rank:前五学期rank2/95,综合排名rank1(前六学期和综合排名出的晚,实际上只用到了前五学期)科研竞赛:市级大创、数模省一、数竞省二,其他校奖若干英语:六级462、四级548个人感觉:rank=科研>竞赛>英语总之rank和科研必须得有一项,要么就rank高,很多强com院校入营看rank。我rank比较有优势,因此报的多是强com院校。要么就科研经历丰富,多主动联系老师,特别是弱com院校。冬令营:空天院。 阅读详情

相关推荐

MuJoCo 相机图片怎么拿?视角调整获取物体图片及实时显示(附代码)

在Mujoco的仿真中,对于识别抓取场景来说,如何获得添加的body等物体的实时图像很重要,今天就分享下如何添加相机视角及可视化小方块(举例)的实时图片。复制一个scene.xml为scene_withcamera.xml,在xml中添加camera和小方块如下。设置xml文件中添加的相机body id。需要创建一个离屏渲染器。

darcsdn 2095

Android开发之MediaPlayer详解

Android开发之MdiaPlayer详解 MediaPlayer类可用于控制音频/视频文件或流的播放,我曾在《Android开发之基于Service的音乐播放器》一文中介绍过它的使用。下面让我们看一下MediaPlayer类的详细介绍。 一、类结构: java.lang.Object    ↳ android.media.Media

一颗开花的树 1万+

玩机进阶教程----提取分区文件后修改MT****_Android_Scatter.txt实战步骤解析 【三】

💝💝如果你有一台联发科MTK芯片的设备,想线刷某个分区(比如刷修改过的 boot.img 实现 root)。但手头只有完整 OTA 包,或者需要从手机里提取分区。不同提取工具生成的 scatter 文件和分区文件名可能不一样,直接加载往往刷不了。本文讲解:如何从提取到刷写,完整走通这个流程。 通过博文了解💝 1💝💝💝-----了解mtk芯片设备无固件提取的方式以及MT****_Android_Scatter.txt的获取 2💝💝💝----不同方式获取到的MT****_Android

小马哥的专栏 36

android MediaPlayer音频播放demo

网上搜了些关于MediaPlayer的资料 1)如何获得MediaPlayer实例: 可以使用直接new的方式: MediaPlayer mp = new MediaPlayer(); 也可以使用create的方式,如: MediaPlayer mp = MediaPlayer.create(this, R.raw.test); 2) 如何设置要播放的文件: MediaPla

yearafteryear的专栏 2万+

Android--MP3播放器MediaPlayer

前言   Android提供了常见的音频、视频的编码、解码机制。借助于多媒体类MediaPlayer的支持,开发人员可以很方便在在应用中播放音频、视频。本篇博客主要讲解在Android平台下如何播放一个音频文件。   本篇博客主要内容如下: MediaPlayer MediaPlayer的音频源 使用MediaPlayer播放音乐 MediaPlayer使用技巧 Demo--一个...

weixin_34260991的博客 2683

android中使用surfaceview+MediaPlayer播放视频

Android中播放视频主要有两种方式: 使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型 使用android自带的VideoView,这种方法太简单就不介绍了 使用SurfaceView+MediaPlaye...

测试0901-1 336

ApiDemos学习知识点之media-MediaPlayer_Audio&MediaPlayer_Video(11)

该项目demo是通过从本地文件路径和资源raw文件加载音频。以及从不同路径加载视频的案例。 下面看下MediaPlayer_Audio部分音频加载的代码 public class MediaPlayerDemo_Audio extends Activity { private static final String TAG = "MediaPlayerDemo"; private Med

张小贝的博客 553

企业知识库如何实现多端统一使用:浏览器、Android和iOS客户端介绍

企业知识库不能只在办公室电脑上好用,实施人员到了客户现场要查部署记录,工厂员工站在设备旁要看操作手册,出差的人也可能临时确认一份制度或项目资料。zyplayer-doc支持电脑和手机浏览器,也提供Android、iOS原生客户端,企业部署一套服务即可,账号、权限和文档都在服务端统一管理,不需要为移动端另建一套知识库。

u010047583的专栏 243

Now in Android:安卓官方架构学习

这篇文件介绍了Now in Android项目。这是一个严格遵循安卓推荐架构,用Kotlin和Jetpack Compose构建的Android应用。

Meteors.的博客 172

android PhoneWindow, DecorView 详解

android PhoneWindow, DecorView 详解

maoning20080808的专栏 173

Android Memory Profiler:堆内存指标、内存抖动与泄漏定位

Android Memory Profiler:堆内存指标、内存抖动与泄漏定位

OuO-1 的博客 292

【阅读源码-Android】GLSurfaceView

SurfaceView + EGL 环境 + 专用渲染线程 + 渲染循环状态机。它解决的核心问题:OpenGL ES 是状态机 API,绑定是线程私有的,GL 命令没有线程安全保护——因此必须有一个独占 EGL 环境的渲染线程,并处理该线程与 UI 线程、Surface 生命周期之间的全部同步问题。。复杂性高度集中在:约 20 个共享状态变量、单一全局锁、生产者-消费者模型、决策与执行分离的主循环。本文第 5-8 章对其进行分层拆解。思想体现1决策与执行分离。

凉水的博客 307

Androidiot开发之猫脸识别

Android IoT猫脸识别功能,深度结合物联网设备通信能力与阿里云云端服务能力,通过标准化的设备指令交互、精准的正则数据解析、规范的云端事件拉取与本地化资源处理,稳定实现了猫咪人脸录入、删除、识别监测、事件图片留存、状态实时反馈等核心业务。整套方案逻辑清晰、异常适配完善、交互体验良好,代码可复用性与扩展性强,完整满足智能宠物IoT设备的猫脸识别业务需求,实现了移动端、设备端、云端三方的数据高效协同。目前只是简单测试阶段,没有处理多只猫咪的情况,是和硬件部门联调后固定放一只猫,当然在手机上把猫咪头像对着

u012556114的博客 216

Android JNI层ChaCha20流密码逆向:从APK到Flag

Android JNI层ChaCha20流密码逆向:从APK到Flag

Morilight的博客 518

2011-2019年中国传媒大学数学物理方程期末试题(全)

2011级中国传媒大学数学物理方程A卷(...2011级中国传媒大学数学物理方程B卷(...数理方程期末考试13-14A卷数理方程期末试题14-15A(另一版本)数理方程期末试题14-15A数理方程期末试题16-17A数理方程期未试题17-18A数学物理方程期末考试18-19A

上一篇: 引路蜂地图开发总结
下一篇: Android ApiDemos示例解析(88):Media->VideoView
引路蜂
博客等级 码龄15年 3122粉丝 711原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值