Android – 查找音频当前是否正在播放并停止播放

我正在使用MediaPlayer实例来从Internet位置流式传输音频文件.音频播放器属于单独的活动.用户可以从音频文件列表中进行选择,并参加此活动以播放音频.

现在,用户可能会返回上一个活动(使用列表)并选择另一个音频文件.在这种情况下,我想停止正在播放的任何其他音频并开始播放所选的新音频.

有什么方法我可以知道音频文件是否正在播放而不必保持MediaPlayer对象?

谢谢.

编辑

我确实知道如何知道音频是否正在播放.
我们可以通过使用AudioManager的对象并调用isAudioPlaying()来实现.如果播放任何音频,这将返回true.

现在另一个问题是,如何停止当前播放的音频?我没有为启动音频而创建的MediaPlayer对象的实例(因为用户已经离开了活动一次,并且已经带回活动的新对象,因此是MediaPlayer的新实例)

解决方法

您需要在MediaPlayer实例上调用 stop().要在您的应用程序中使用此功能,您需要:

>例如,在音频播放活动中(在onDestroy()中)调用stop()
>创建一个Service播放音频,并从两个活动中与之通信

使用服务将允许您的代码继续在Activity生命周期之外运行,并且是在这种情况下持久保存MediaPlayer对象的唯一方法.

或者,您可以创建自定义子类Application并将MediaPlayer存储在那里,但使用服务被认为是更好的做法.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...