【android开发-22】android中音频和视频用法详解

1,播放音频

MediaPlayer是Android中用于播放音频和视频的类。它提供了许多方法来控制播放,例如播放、暂停、停止、释放等。下面是一个简单的MediaPlayer用法详解和参考代码例子。

首先,确保在布局文件中添加了一个MediaPlayer控件,例如:

<mediaplayer  android:id="@+id/media_player"  android:layout_width="wrap_content"  android:layout_height="wrap_content" />

然后,在Java代码中初始化MediaPlayer对象,并设置音频或视频源:

MediaPlayer mediaPlayer = new MediaPlayer();  
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);  
mediaPlayer.setDataSource(audioFilePath); // audioFilePath是音频文件路径  
mediaPlayer.prepare();  
mediaPlayer.start(); // 开始播放

如果要播放视频,可以使用类似的方法,只需将音频源更改为视频源即可。

在播放过程中,可以使用MediaPlayer对象的方法来控制播放,例如:

pause():暂停播放
start():开始播放
stop():停止播放
reset():重置播放器,清除所有状态和数据源
release():释放资源,结束播放器
seekTo():跳转到指定位置(以毫秒为单位)
getCurrentPosition():获取当前播放位置(以毫秒为单位)
getDuration():获取音频或视频总时长(以毫秒为单位)
isPlaying():判断是否正在播放音频或视频
getAudioSessionId():获取音频会话ID,用于与AudioTrack、AudioRecord等音频会话进行区分和管理。

例如,要在播放过程中暂停音频,可以使用以下代码:

if (mediaPlayer.isPlaying()) {  mediaPlayer.pause();  
}

要恢复播放,可以使用以下代码:

if (!mediaPlayer.isPlaying()) {  mediaPlayer.start();  
}

完整的使用代码:

import android.media.MediaPlayer;  
import android.os.Bundle;  
import androidx.appcompat.app.AppCompatActivity;  
import android.view.View;  
import android.widget.Button;  public class MediaPlayerActivity extends AppCompatActivity {  private MediaPlayer mediaPlayer;  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  // 获取MediaPlayer控件和按钮对象  Button playButton = findViewById(R.id.play_button);  Button stopButton = findViewById(R.id.stop_button);  // 设置按钮点击事件监听器  playButton.setOnClickListener(new View.OnClickListener() {  @Override  public void onClick(View v) {  if (mediaPlayer == null) {  mediaPlayer = MediaPlayer.create(MediaPlayerActivity.this, R.raw.music_file); // 设置音频文件路径,可以从资源文件中读取或从文件中直接读取  mediaPlayer.start(); // 开始播放音频  } else {  mediaPlayer.start(); // 继续播放音频  }  }  });  stopButton.setOnClickListener(new View.OnClickListener() {  @Override  public void onClick(View v) {  if (mediaPlayer != null) { // 如果MediaPlayer对象不为空,则停止播放音频并释放资源  mediaPlayer.stop(); // 停止播放音频  mediaPlayer.release(); // 释放资源,以便再次使用MediaPlayer时重新设置数据源和回调接口等参数  mediaPlayer = null; // 将MediaPlayer对象置为空,以便再次使用时重新创建对象并设置数据源和回调接口等参数  } else { // 如果MediaPlayer对象为空,则不执行任何操作,保持当前状态不变。如果需要再次播放音频,可以再次调用playButton的点击事件来创建并启动MediaPlayer对象。

2,播放视频

以下是一个简单的Android VideoView示例,它显示了如何使用VideoView播放一个视频文件。

首先,在布局文件(例如:activity_main.xml)中添加VideoView控件:

<VideoView  android:id="@+id/videoView"  android:layout_width="match_parent"  android:layout_height="match_parent" />

然后在对应的Activity中初始化VideoView并设置视频路径:

import android.os.Bundle;  
import androidx.appcompat.app.AppCompatActivity;  public class MainActivity extends AppCompatActivity {  private VideoView videoView;  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  videoView = findViewById(R.id.videoView);  videoView.setVideoURI(Uri.parse("path/to/your/video.mp4")); // 设置视频路径,可以从资源文件中读取或从文件中直接读取  videoView.start(); // 开始播放视频  }  
}

这个例子中的"path/to/your/video.mp4"需要替换为你的视频文件的实际路径。如果你的视频文件在资源文件夹的raw目录下,你可以像这样设置:videoView.setVideoURI(Uri.parse(“android.resource://your.package.name/” + R.raw.your_video))。记住,你需要将"your_video"替换为你的视频文件名(不包含扩展名)。

注意,这是一个非常基础的例子。在实际使用中,你可能需要处理更多的情况,例如错误处理、视频播放的控制(暂停、继续、停止等),以及适应不同的屏幕尺寸和分辨率。

VideoView和MediaPlayer的用法非常相似,主要有以下常用方法:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/258590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 小红书评论区采集 小红薯xhs精准用户获客

成品图 评论接口https://edith.xiaohongshu.com/api/sns/web/v2/comment/page?note_id笔记id&cursor光标 初次使用cursor为空,该接口为GET&#xff0c;需要x-s,x-t签名验证 子评论接口https://edith.xiaohongshu.com/api/sns/web/v2/comment/sub/page?note_id%s&r…

修改pip源

修改pip源 永久修改 PS C:\Users\Dell> pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/Writing to C:\Users\Dell\AppData\Roaming\pip\pip.ini临时修改 pip install -i(即--index-url简写) http://mirrors.aliyun.com/pypi/simple/ selenium…

Gerber文件使用详解

目录 概述 一、Gerber 格式 二、接线图示例 三、顶层丝印 四、顶级阻焊层 五、顶部助焊层 六、顶部&#xff08;或顶部铜&#xff09; 七、钻头 八、电路板概要 九、使用文本和字体进行 Gerber 导出 十、总结 概述 Gerber文件:它们是什么? PCB制造商如何使用它们? …

Swing程序设计(9)复选框,下拉框

文章目录 前言一、复选框二、下拉框总结 前言 该篇文章简单介绍了Java中Swing组件里的复选框组件、列表框组件、下拉框组件&#xff0c;这些在系统中都是常用的组件。 一、复选框 复选框&#xff08;JCheckBox&#xff09;在Swing组件中的使用也非常广泛&#xff0c;一个方形方…

年度工作总结怎么写?掌握这些年终总结万能公式,让你的报告出彩无比!

光阴似箭&#xff0c;日月如梭&#xff0c;时间总是不疾不徐地向前奔去&#xff0c;转眼就来到了2023年的最后一个月&#xff0c;12月一到&#xff0c;上班族和打工人又要开始忙活工作总结的事情~ 工作总结&#xff0c;不仅是一年工作的回顾&#xff0c;更是未来规划的起点。你…

k8s之镜像拉取时使用secret

k8s之secret使用 一、说明二、secret使用2.1 secret类型2.2 创建secret2.3 配置secret 一、说明 从公司搭建的网站镜像仓库&#xff0c;使用k8s部署服务时拉取镜像失败&#xff0c;显示未授权&#xff1a; 需要在拉取镜像时添加认证信息. 关于secret信息,参考: https://www.…

Python源码30:海龟画图turtle画紫色的小熊

turtle模块是一个Python的标准库之一&#xff0c;它提供了一个基于Turtle graphics的绘图库。Turtle graphics是一种流行的绘图方式&#xff0c;它通过控制一个小海龟在屏幕上移动来绘制图形。 turtle模块可以让您轻松地创建和控制海龟图形&#xff0c;从而帮助您学习Python编…

106.进程控制(结束、孤儿、僵尸进程)以及进程回收

目录 结束进程 孤儿进程 僵尸进程 进程回收 wait() waitpid 进程控制是指在操作系统中对进程进行创建、终止、挂起、唤醒以及进程之间的同步、通信等操作的管理。 结束进程 exit() 和 _exit() 函数都用于终止一个进程&#xff0c;但它们之间有一些重要的区别&#xf…

什么是JVM的内存模型?详细阐述Java中局部变量、常量、类名等信息在JVM中的存储位置

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 一、JVM基本介绍 二、JVM内存模型 2.0 概述 2.1 类加载子系统 2.2 运行时数据区 2.2.0 基本…

时域频域(学习记录1)

1 小伙伴们&#xff0c;今天让我们一起来聊聊Something about DATA 系列。我们先回顾一下本系列对NVH测试中的数据采集做的整体介绍&#xff1a; A 数据采集过程&#xff1b; B 硬件设备&#xff1b; C 数采软件&#xff1b; D ATOM中的数据采集&#xff1b; 接下来的几篇文章…

小程序一键生成工具哪个好?

在这个数字化时代&#xff0c;小程序已经成为商家吸引客户、提升业务的重要工具。但是&#xff0c;传统的小程序开发方式既费时又费力&#xff0c;让许多商家望而却步。 现在&#xff0c;有了乔拓云小程序模板开发平台&#xff0c;一切都变了。 乔拓云提供了大量精心设计的模板…

5G基站行业节能降耗 解决方案

截至2023年10月&#xff0c;我国5G基站总数达321.5万个&#xff0c;占全国通信基站总数的28.1%。然而&#xff0c;随着5G基站数量的快速增长&#xff0c;基站的能耗问题也逐渐日益凸显&#xff0c;基站的用电给运营商带来了巨大的电费开支压力&#xff0c;降低5G基站的能耗成为…