class MyMusicSoundsPlayer { private var mplayer:MediaPlayer? private var source:String="" constructor(){ mplayer=MediaPlayer() } fun play(name:String,loop:Boolean){ mplayer?.apply { if((source == name) && isPlaying()) { return } stop() reset() } source=name val filename=MyApplication.appCachePath+ source if (-1L==MyFileUtil.fileIsExists(filename)) { val mr=MySQLite.readOneBLOBbyIdStr(source) if(mr.ret) { //大文件无法读取 MyFileUtil.saveByteArrayToFile(mr.dataBOLB, filename) }else return } try { mplayer?.apply { //reset() //must reset setDataSource(filename) isLooping=loop setVolume(0.3F,0.5F) prepareAsync()
安卓开发安全有效启动停止Mediaplayer播放(kotlin语言)
于 2023-03-27 16:02:41 首次发布
本文介绍了一个名为MyMusicSoundsPlayer的类,用于安全有效地控制Android MediaPlayer的播放和停止。类中包含play()函数,根据传入的文件名和循环播放设置来启动播放,如果文件不存在则从数据库读取并保存到本地。stop()函数用于停止播放,而close()函数则释放资源。整个实现使用了Kotlin语言,并提供了异常处理以确保稳定运行。
摘要由CSDN通过智能技术生成