首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我没有在循环中声明,为什么Android MediaPlayer只播放一次?

Android MediaPlayer是用于播放音频和视频文件的类。如果在循环中没有声明,MediaPlayer只会播放一次的原因是因为默认情况下,MediaPlayer在播放完毕后会进入"播放完成"状态,并且需要手动调用reset()方法来重置MediaPlayer的状态,才能再次播放。

在循环中声明MediaPlayer可以实现循环播放的效果。可以通过设置MediaPlayer的setLooping(true)方法来启用循环播放模式,这样当播放完成后,MediaPlayer会自动重新开始播放。

以下是完善且全面的答案:

概念:Android MediaPlayer是一个用于播放音频和视频文件的类,提供了控制媒体播放的各种方法和功能。

分类:Android MediaPlayer属于多媒体处理领域。

优势:MediaPlayer具有简单易用、功能强大、支持多种音视频格式、可控制播放进度等优势。

应用场景:MediaPlayer可以应用于各种需要播放音频和视频的场景,如音乐播放器、视频播放器、多媒体应用等。

推荐的腾讯云相关产品:腾讯云音视频解决方案。

产品介绍链接地址:https://cloud.tencent.com/product/tcav

注意:本答案中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,如需了解更多相关信息,请参考官方文档或咨询相关厂商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android Service 服务(一)—— Service

Service还没有运行,则android先调用onCreate(),然后调用onStart(); 如果Service已经运行,则调用onStart(),所以一个Service的onStart方法可能会重复调用多次...Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory一个生命周期中只能被调用一次...四、 Service示例 下面做了一个简单的音乐播放的应用,分别使用startService和bindService来启动本地的服务。...= null) { mediaPlayer.stop(); try { mediaPlayer.prepare(); // 调用stop后如果需要再次通过start进行播放,需要之前调用...拓展知识(进程和声明周期) Android操作系统尝试尽可能长时间的保持应用的进程,但当可用内存很低时最终要移走一部分进程。

1.2K30

Android笔记】Android Service 服务

Service还没有运行,则android先调用onCreate(),然后调用onStart(); 如果Service已经运行,则调用onStart(),所以一个Service的onStart方法可能会重复调用多次...所以调用bindService的生命周期为:onCreate --> onBind(一次,不可多次绑定) --> onUnbind --> onDestory。...Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory一个生命周期中只能被调用一次...四、 Service示例 下面做了一个简单的音乐播放的应用,分别使用startService和bindService来启动本地的服务。...(); // 调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数 } catch (IOException ex) {

77510

Android Service 服务解说

Service还没有运行,则android先调用onCreate(),然后调用onStart(); 如果Service已经运行,则调用onStart(),所以一个Service的onStart方法可能会重复调用多次...所以调用bindService的生命周期为:onCreate --> onBind(一次,不可多次绑定) --> onUnbind --> onDestory。...Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory一个生命周期中只能被调用一次...四、 Service示例 下面做了一个简单的音乐播放的应用,分别使用startService和bindService来启动本地的服务。...(); // 调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数 } catch (IOException ex) {

57030

android service 学习(上)

Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则调用onStart(),所以一个Service的onStart方法可能会重复调用多次...Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory一个生命周期中只能被调用一次...下面做了一个简单的音乐播放的应用,分别使用startService和bindService来启动本地的服务。...= null) { mediaPlayer.stop(); try { // 调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数 mediaPlayer.prepare...= null) { mediaPlayer.stop(); try { // 调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数 mediaPlayer.prepare

72860

android音乐播放简单实现的简单示例(MediaPlayer

MainActivity.java首先声明一个 MediaPlayer 播放器。...private MediaPlayer mediaPlayer = new MediaPlayer(); 由于音乐播放也是需要专门的权限的,所以 onCreate 中动态申请权限,然后才初始化播放器。...如果没有这条语句,实测的效果是点击了停止按钮后,再点击开始按钮是无法顺利播放音乐的。感兴趣的朋友可以实验一下。 onDestroy() 的逻辑很容易理解,就是彻底清理音乐播放占用的资源了。...mediaPlayer.isPlaying()){ mediaPlayer.start(); } break; case R.id.btnPause: //如果播放中,立刻暂停。...= null){ mediaPlayer.stop(); mediaPlayer.release(); } } } 当然,你不能忘记了 AndroidManifest.xml 添加权限声明。 <?

3.4K31

Android-MediaPlayer(2)加进度条和时间显示

SeekBar使用显示歌曲播放进度及时间 上一篇:Android MediaPlayer 我们之前播放音乐的时候都会有进度条,今天我们就来加一个进度条,并显示你的播放进度和当前歌曲时间。...我们就不新建项目了,就用之前的那个MediaPlayerDemo吧,如果你是第一次看,可以点击最上方的链接去看前一篇文章。...我们想一下,我们已经知道这个音频文件放在手机里面了,也已经可以播放了,那么要用进度条来显示当前歌曲的播放进度该怎么做,并且你可以通过手指拖拽这个Seekbar来到你想要的歌曲片段出,并且松手就要播放音乐...最下面就是三个按钮的点击监听事件,为什么可以这样写,请看上一篇文章,修改了一下onClick(),方法代码如下: @Override public void onClick(View v){...没有关系,可以看下面这篇文章,可以扫描手机的本地音乐,添加到列表上,并且播放出来,比现在看起来要更高大上呢

5.3K20

Android开发—-简单几步教你制作一个简易的音乐播放

前言:本博文教你编程的思想,就举一个简单的例子来实现我们的简易的音乐播放器,大家不喜勿喷啊 友情提示:本博文用到的是Android Studio进行开发的,软件安装教程:Android Studio...安装教程: 文章目录: 一.缓冲界面实现: 二:播放音乐界面: 一.缓冲界面实现: 在前面的博客中也讲到了关于界面缓冲跳转的方法,详情请查:3种方式实现界面缓冲,为什么要设置这个呢?...和imageview控件,为什么要用这种布局方式呢?...: 音乐播放界面,是用的是布局的嵌套,LinearLayout布局中进行嵌套LinearLayout布局,加以TextView和imageview控件,也不知道的审美怎样,咱们做的是最简易的音乐播放器...(); try { mediaPlayer=MediaPlayer.create(this,R.raw.shaonian); //点击重新播放时,重新创建播放实例

1.9K10

Android 音乐APP(三)播放音乐、自定义进度条、自动下一曲

前言   作为音乐APP的主要功能,放到了第三篇文章,因为播放音乐的功能并没有看上去那么简单,里面有很多细节是写代码的时候就要考虑,并且加入到逻辑里面的,这可不是危言耸听,下面来看是怎样一个不简单吧...那么现在你再列表中就可以随意点击了,点击那一首就播放哪一首。现在的确是有播放音乐了,但是也需要暂停啊。 ④ 暂停音乐 底部播放按钮btn_play的点击事件中进行处理。...⑤ 自动下一曲 说道自动下一曲,就是没有人为干涉的情况下,当前歌曲播放完毕之后自行播放下一首。...⑥ 播放进度 播放进度对于用户来说是比较重要的,这里没有用Seekbar,来让用户看到播放进度并且可以手动拖动,而是用了一个自定义View,只用来显示歌曲当前的播放进度,没有具体的播放时间和操作控件,...结语 写代码的工程中逻辑很重要,最好是一气呵成,当你的思路被打断,无法集中注意力时,是写不好代码的,而文章则是代码写好之后再写的,如果有什么问题及时提出来,我会尽快解决。

2.2K20

Android Service 服务(一)—— Service

service能够非常多场合的应用中使用,比方播放多媒体的时候用户启动了其它Activity这个时候程序要在后台继续播放,比方检測SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务总是藏在后台的...Service每一次的开启关闭过程中,仅仅有onStart可被多次调用(通过多次startService调用),其它onCreate,onBind,onUnbind,onDestory一个生命周期中仅仅能被调用一次...四、 Service演示样例 以下做了一个简单的音乐播放的应用,分别使用startService和bindService来启动本地的服务。...= null) { mediaPlayer.stop(); try { mediaPlayer.prepare(); // 调用stop后假设须要再次通过start进行播放,须要之前调用...拓展知识(进程和声明周期) Android操作系统尝试尽可能长时间的保持应用的进程,但当可用内存非常低时终于要移走一部分进程。

1.2K10

Android实现音乐播放进度条传递信息的两种方式(service和activity中)

实现播放时的进度条显示,或是定时从service获取某些信息,是我们日常开发中经常遇到的需求,下面介绍当音乐再service中运行时,activity如果获取音乐进度信息的两种方式: 一、activity...,没有必要用到线程来传信息,而已每一次执行都会创建一个线程,这样很浪费资源 //创建一个线程每隔100毫秒发送一次信息 Runnable runnable = new Runnable() {...mediaPlayer.prepare()还在执行中,突然定时器里刚刚好到时间该调用mediaPlayer.getDuration()这个方法,结果就是mediaPlayer.prepare()因为没有初始化成功就调用..._prepare(Native Method) (当然如果你的定时操作间隔越大出错的概率就越小,不过强迫症就是忍不了) 2.上面提到mediaPlayer.prepare()的执行速度很低,如何解决...Android作业 音乐播放器 总结 到此这篇关于Android实现音乐播放进度条传递信息的两种方式(service和activity中)的文章就介绍到这了,更多相关android 实现音乐播放进度条内容请搜索

2.2K30

Android音频系统AudioTrack使用方法详解

1、Android AudioTrack简介 android播放声音可以用MediaPlayer和AudioTrack两种方案的,但是两种方案是有很大区别的,MediaPlayer可以播放多种格式的声音文件...事实上,两种本质上是没啥区别的,MediaPlayer播放音频时,framework层还是会创建AudioTrack,把解码后的PCM数流传递给AudioTrack,最后由AudioFlinger进行混音...如果是实时的音频数据,那么只能用AudioTrack进行播放。 2、如何使用AudioTrack进行音频播放 //根据采样率,采样精度,单双声道来得到frame的大小。...STREAM的意思是由用户应用程序通过write方式把数据一次一次得写到audiotrack中。...例如你听music的时候接到电话,这个时候music播放肯定会停止,此时你只能听到电话,如果你调节音量的话,这个调节肯定只对电话起作用。当电话打完了,再回到music,你肯定不用再调节音量了。

3.9K51

Android开发中播放声音的两种方法分析

本文实例讲述了Android开发中播放声音的两种方法。分享给大家供大家参考,具体如下: Android中,音频、视频等多媒体元素的加入,使得应用程序的用户体验更好。...Android提供了简单的音频API。一般大家使用的是MediaPlayer播放音频,这也是最常见的一种播放声音的工具。这种工具互联网上有大量的实例,因此在此做简单的介绍。...播放过程中,有几个可以监听播放过程的监听器,如: setOnCompletionListener(MediaPlayer.OnCompletionListener listener) 监听音频播放结束...然而,使用MediaPlayer播放时,也有一些问题。我们知道MediaPlayer创建和销毁时都会耗费大量的系统资源,且创建和销毁的时间相对较长。...此外,如果我们需要在同一时刻播放很多声音,MediaPlayer是不支持的。 因此,我们需要一个更加轻量级的声音播放工具。

3.8K20

Android 多媒体开发】 MediaPlayer 网络视频播放

SurfaceView 窗口区域内的才是可见的, 其它没有在窗口正下方的内容不可见; -- Surface 与 SurfaceView 声明周期对应 : SurfaceView 可见的时候 Surface...MediaPlayer 播放 (1) 设置音量 和 播放载体 设置音量 :  mediaPlayer.setAudioStreamType(2); /* 设置播放音量 */ 设置播放载体...) 设置各种监听器  设置错误监听器 : 如果出现错误, 会回调该监听器中的方法, 并提供错误码; /* 设置 MediaPlayer 错误监听器, 如果出现错误就会回调该方法打印错误代码 */...第一次点击 : 需要初始化 MediaPlayer 对象, 设置监听器 * b..../* 如果已经开始了播放, 就直接开始播放 */ mediaPlayer.start(); }else{ /* 如果是第一次开始播放, 需要初始化 MediaPlayer

2.9K20

Android简易“吹一吹实现”以及录音和播放示例

一看到这个网站后面是htm,仿佛就明白了这个网站的框架… 这个东西坑的地方在于Mediaplayer和MediaRecorder这两个东西stop和start的顺序经常是严格被限制的,退出时如果没有成功释放资源...STATUS == PAUSING){ startPlay(); } else { //如果播放...就知道,如果你看到这个地方,一定也对这个错误感到莫名其妙。记得好像上古时期,也就是上次写这个的时候也被坑了。...论坛上有人说这个东西4.4以下的系统就容易出现,但是也只能感觉不明觉厉,一开始用的是MediaPlayer.create(this,Uri.parse(PATH_NAME))来创建MediaPlayer...; 某些设备上可能不支持,于是就出了问题= =好吧,也不知道还能说啥,就酱… Vector Asset添加的图标颜色不变化 如上,播放按钮啊,音响啊,之类的图标都是通过Vector Asset添加的

1.2K40
领券