Android多媒体的简单实现

播放多媒体文件

播放音频

播放音频文件一般用MediaPlayer类实现。
MediaPlayer有多个方法可以使用,最常用的有

  • setDataSource 用于设置mp3音频
  • prepare 用于初始化
  • reset 用于重新播放音乐
  • pause 暂停
  • start 开始
  • release 销毁
    看看核心代码
  
class MainActivity : AppCompatActivity() {  
    private val mediaPlayer = MediaPlayer()  
  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
        initMediaPlayer()  
        val binding = ActivityMainBinding.inflate(layoutInflater)  
        setContentView(binding.root)  
        binding.play.setOnClickListener {  
            if (!mediaPlayer.isPlaying){  
                mediaPlayer.start()  
            }  
        }  
        binding.pause.setOnClickListener {  
            if (mediaPlayer.isPlaying){  
                mediaPlayer.pause()  
            }  
        }  
        binding.stop.setOnClickListener {  
            if (mediaPlayer.isPlaying){  
                mediaPlayer.reset()  
                initMediaPlayer()  
            }  
        }  
    }  
    private fun initMediaPlayer(){  
        val assetManager = assets  
        val fd = assetManager.openFd("music.mp3")  
        mediaPlayer.setDataSource(fd.fileDescriptor,fd.startOffset,fd.length)  
        mediaPlayer.prepare()  
    }  
  
    override fun onDestroy() {  
        super.onDestroy()  
        mediaPlayer.stop()  
        mediaPlayer.release()  
    }  
}

非常简单

播放视频

视频主要由ViedoView类来实现,它的方法和MediaPlayer类似。
通过实例来学习吧!

package com.example.mediapalyer  
  
import android.media.MediaPlayer  
import android.net.Uri  
import androidx.appcompat.app.AppCompatActivity  
import android.os.Bundle  
import android.provider.MediaStore.Video  
import android.widget.VideoView  
import com.example.mediapalyer.databinding.ActivityMainBinding  
  
class MainActivity : AppCompatActivity() {  
  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
        val binding = ActivityMainBinding.inflate(layoutInflater)  
        setContentView(binding.root)  
        val uri = Uri.parse("android.resource://$packageName/${R.raw.video}")  
        binding.viedoview.setVideoURI(uri)  
        binding.play.setOnClickListener {  
            if (!binding.viedoview.isPlaying){  
                binding.viedoview.start()  
            }  
        }  
        binding.pause.setOnClickListener {  
            if (binding.viedoview.isPlaying){  
                binding.viedoview.pause()  
            }  
        }  
        binding.replay.setOnClickListener {  
            if (binding.viedoview.isPlaying){  
                binding.viedoview.resume()  
            }  
        }  
    }  
  
  
    override fun onDestroy() {  
        super.onDestroy()  
       val video = findViewById<VideoView>(R.id.viedoview)  
        video.suspend()  
    }  
}

至此就是简单的多媒体功能实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值