android媒体类,Android开发之媒体播放工具类完整示例

本文介绍了Android开发中如何使用MediaUtil工具类进行媒体文件的播放、暂停、停止以及事件监听的实现,包括设置DataSource、准备和启动播放器,同时涵盖了如何获取媒体文件的时长。适合进一步了解Android多媒体操作的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android开发之媒体播放工具类完整示例

发布时间:2020-08-28 00:28:43

来源:脚本之家

阅读:103

作者:沉水之木

本文实例讲述了Android开发之媒体播放工具类。分享给大家供大家参考,具体如下:

package com.maobang.imsdk.util;

import android.media.MediaPlayer;

import android.net.Uri;

import android.util.Log;

import java.io.FileInputStream;

import java.io.IOException;

import com.maobang.imsdk.app.IMApplication;

/**

* 媒体播放工具

*/

public class MediaUtil {

private static final String TAG = "MediaUtil";

private MediaPlayer player;

private EventListener eventListener;

private MediaUtil(){

player = new MediaPlayer();

}

private static MediaUtil instance = new MediaUtil();

public static MediaUtil getInstance(){

return instance;

}

public MediaPlayer getPlayer() {

return player;

}

public void setEventListener(final EventListener eventListener) {

if (player != null){

player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(MediaPlayer mp) {

eventListener.onStop();

}

});

}

this.eventListener = eventListener;

}

public void play(FileInputStream inputStream){

try{

if (eventListener != null){

eventListener.onStop();

}

player.reset();

player.setDataSource(inputStream.getFD());

player.prepare();

player.start();

}catch (IOException e){

Log.e(TAG, "play error:" + e);

}

}

public void stop(){

if (player != null && player.isPlaying()){

player.stop();

}

}

public long getDuration(String path){

player = MediaPlayer.create(IMApplication.getContext(), Uri.parse(path));

return player.getDuration();

}

/**

* 播放器事件监听

*/

public interface EventListener{

void onStop();

}

}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值