首页 > 其他分享 >android 使用MediaPlayer实现音乐播放

android 使用MediaPlayer实现音乐播放

时间:2024-11-19 20:16:33浏览次数:3  
标签:mMediaPlayer MediaPlayer mPlayList music android 播放 data

        Android 多媒体框架支持播放各种常见媒体类型,因此 可轻松地将音频、视频和图片集成到您的应用中。你可以播放音频或 从存储在应用资源(原始资源)的媒体文件(原始资源)中获取独立文件 或从通过网络连接到达的数据流中,所有这些均使用 MediaPlayer API。

1. MediaPlayer初始化
  mMediaPlayer = MediaPlayer()
        mMediaPlayer?.let {
            it.setAudioStreamType(AudioManager.STREAM_MUSIC)
            it.setOnCompletionListener(this)
            it.setOnErrorListener(this)
        }

MediaPlayer初始化只需要直接创建即可,添加播放完成跟错误监听。一般我们初始化还可以首次将上次播放的音乐跟播放进度设置进去,mMediaPlayer?.setDataSource(music.data)是设置播放音乐数据,mMediaPlayer?.seekTo(lastMusicProgress)是设置播放进度,将播放进度设置到上次播放的位置

    private fun initMediaPlayer(position: Int = 0) = launchMain {
        val lastMusicProgress = LocalKV.getIns().getInt(Constant.LAST_PLAY_PROGRESS, 0)
        val music: Music = mPlayList[position]
        if (music.data != null) {
            try {
                mMediaPlayer?.reset()
                mMediaPlayer?.setDataSource(music.data)
                mMediaPlayer?.prepare()
                mMediaPlayer?.seekTo(lastMusicProgress)
                mLastMusic = music
            } catch (e: Exception) {
                LogUtil.i(TAG, "initMediaPlayer error=${e.message}")
            }
        }
    }
2. 播放音乐

如果是同一首歌而且只是暂停可以直接调用MediaPlayer?.start()继续播放,如果不是同一首歌需要重新调用mMediaPlayer?.setDataSource(it.data)设置播放音乐,然后再调用start去播放,如果该首音乐有问题可以直接播放下一首。

    fun play() {
       
        if (mMusicPosition >= mPlayList.size - 1) {
            mMusicPosition = mPlayList.size - 1
            LogUtil.i(TAG, "play position exceed music list")
        }

        mCurrentMusic = mPlayList[mMusicPosition]

        mCurrentMusic?.let {
            if (

标签:mMediaPlayer,MediaPlayer,mPlayList,music,android,播放,data
From: https://blog.csdn.net/u011324501/article/details/143893650

相关文章

  • 视频流媒体播放器EasyPlayer.js网页直播/点播播放器为什么显卡支持,但仍无法使用硬解?
    EasyPlayer播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,无须安装任何插件,起播快、延迟低、兼容性强,使用非常便捷。EasyPlayer.js播放器不仅支持H.264与H.265视频编码格式,也能支持WebSocket-FLV、HTTP-FLV、HLS(m3u8)、WebRTC、ws-fmp4、http-fmp4......
  • H.265流媒体播放器EasyPlayer.js H5流媒体播放器如何验证视频播放是否走硬解
    随着技术的不断进步和5G网络的推广,中国流媒体播放器行业市场规模以及未来发展趋势都将持续保持稳定的增长,并将在未来几年迎来新的发展机遇。流媒体播放器将继续作为连接内容创作者和观众的重要桥梁,推动数字媒体产业的创新和发展。EasyPlayer.js无插件直播流媒体音视频播放器是一......
  • RTSP播放器EasyPlayer.js无插件直播流媒体音视频播放器如何在electron中播放视频
    随着科技的飞速发展,流媒体技术已经成为我们日常生活中不可或缺的一部分。从视频娱乐到在线教育,从远程办公到物联网应用,流媒体技术的广泛应用正深刻改变着我们的生活方式。EasyPlayerH.264/H.265播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,无......
  • 无插件H5播放器EasyPlayer.js视频流媒体播放器如何开启electron硬解码Hevc(H265)
    在数字化时代,流媒体播放器技术正经历着前所未有的变革。随着人工智能、大数据、云计算等技术的融合,流媒体播放器的核心技术不断演进,为用户提供了更加丰富和个性化的观看体验。EasyPlayer.jsH5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频......
  • Android 8.0 更换TTS为Google TTS , TTS播报出来是女声,更改为男生
    diff--gita/frameworks/base/core/java/android/speech/tts/TextToSpeech.javab/frameworks/base/core/java/android/speech/tts/TextToSpeech.javaindex763ea2ca38…2ec9f737b0100755—a/frameworks/base/core/java/android/speech/tts/TextToSpeech.java+++b/fr......
  • 调整方法和相关的注册表项,能帮助你加速 MS Edge 的加载:增强 Google Chrome 浏览器在视
    在Windows11系统中,通过调整MicrosoftEdge浏览器的注册表设置,你可以对其性能进行优化,尤其是提高启动速度和加载速度。以下是一些常见的调整方法和相关的注册表项,能帮助你加速MSEdge的加载:1. 禁用硬件加速硬件加速可能会影响性能,尤其是在资源较少的设备上。如果你遇到性......
  • VLC多媒体播放器 合并字幕srt文件和mp4文件 方法
    转载自:链接:https://blog.csdn.net/sdkdlwk/article/details/143867825作者:sdkdlwk 步骤:1. 将视频和字幕放到同一个文件夹,并保证二者名字相同。选择菜单"媒体"->"流"或者ctrl+s点"添加"选择视频文件,注意这里不要选择下面的使用字幕文件 点击"串流"2. 一直往下点,直......
  • Android WMS概览
    WMS(WindowManagerService)是Android系统的核心服务,负责管理应用和系统的窗口,包括窗口的创建、销毁、布局、层级管理、输入事件分发以及动画显示等。它通过协调InputManager和SurfaceFlinger实现触摸事件处理和窗口渲染,是连接应用界面和底层显示硬件的关键桥梁。目录......
  • Android 应用检测设备是否被root
    publicclassPropertyUtils{privatestaticfinalStringROOT_DEVICE="0";privatestaticfinalStringNON_ROOT_DEVICE="1";privatestaticvolatileMethodget=null;privatestaticStringgetProperty(Stringprop......
  • 音乐播放器的设计与实现ssm+论文源码调试讲解
    第2章系统分析2.1系统使用相关开发技术分析2.1.1Jsp技术介绍Jsp技术是一种开发动态网页的web技术,相当于就是servle技术类似一样,主要是结合html和java使用,应用在网页前段技术里,html主要是编写静态内容,而jsp是可以编写所需要的动态技术,两者相结合使用,通过jsp编写的动态......