Android学习记录--音频视频播放

2023-10-11 14:08

本文主要是介绍Android学习记录--音频视频播放,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近对Android 多媒体方面进行学习 , 在此进行总结:

android中的多媒体播放都是由MediaPlayer类进行处理的 , 通过MediaPlayer 可以播放各种多媒体格式的音频以及视频文件, 包括 

1.存储在应用程序内部的资源

2.本地资源

3.Content Provider提供的资源

4.来自网络的URL 流中的资源。


通常情况下通过MediaPlayer 来播放多媒体要进行以下几个步骤:

1.对MediaPlayer进行初始化工作;

2.让MediaPlayer实例完成准备播放;

3.开始播放;

4.在播放是进行暂停,停止, 以及定位到某点播放;

5.播放完成。


Android仅支持有限个数的同步MediaPlayer对象 , 所以在播放完成之后 要注意对MediaPlayer对象进行释放。

mediaPlayer.release();


    音频的播放:

音频的播放有2种方式:
第一种 --> 
MediaPlayer mediaPlayer = new MediaPlayer();
String fileName = "Nyananaya.mp3";
//文件放在SDcard根目录 一定要进行prepare() 方法 使硬件进行准备
File fd = new File(Environment.getExternalStorageDirectory(),
fileName);

mediaPlayer.setDataSource(fd.getAbsolutePath());
mediaPlayer.prepare();
mediaPlayer.start();

通过对MediaPlayer实例进行 setDataSource方法, 可以接受一个文件路径 , ContentProvider 提供的URI , 网络URL 路径。


第二种---->

这种方式是通过 create 方式返回MediaPlayer对象 ,通过此方式创建不需要进行prepare 工作 因为在create过程中已经完成了该操作。

MediaPlayer  player = MediaPlayer.create(context , R.raw.mm);

MediaPlayer  player = MediaPlayer.create(context , Uri.parse(“file:///sdcard/mm.mp3”));

MediaPlayer  player = MediaPlayer.create(context , Uri.parse("http://www.myweb.com/mm.mp3"));

MediaPlayer  player = MediaPlayer.create(context , Settings.System.DEFAULT_RINGTONE_URI);

这篇关于Android学习记录--音频视频播放的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188572

相关文章

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

Python如何将OpenCV摄像头视频流通过浏览器播放

《Python如何将OpenCV摄像头视频流通过浏览器播放》:本文主要介绍Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完... 目录方法1:使用Flask + MJPEG流实现代码使用方法优点缺点方法2:使用WebSocket传输视

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手