ArkTs鸿蒙开发入门学习——自定义音乐播放器(一)含源码


ArkTs鸿蒙开发入门学习——自定义音乐播放器(二)含源码-CSDN博客

ArkTs鸿蒙开发入门学习——自定义音乐播放器(三)含源码-CSDN博客

个人ArkTs鸿蒙开发入门学习总结,如何从零开发实现音乐播放器设计。效果如下:

1.创建项目

2.下载并选择播放器素材

图标:播放器、播放、上一首、下一首、暂停、循环01~循环03、音频列表;

举例:

创建三个资源存储文件夹:icons图标、images歌曲封面、music歌曲资源

将刚刚下载的资源拷贝到icons图标中,歌曲、专辑封面同理。

注意:ArkTs对中文不是很友好,建议将所有曲目图片改成英文或拼音。

index.ets

@Entry
@Component
struct Index {
  musicSrc:Resource=$rawfile('images/luxiaoyu.jpg') //定义图片
  musicName:Resource=$rawfile('music/luxiaoyu.mp3') //定义音频资源
  musicPlayer:string = "周杰伦"
  musicArrangement:string = ""
  musiclyric:string = ""
  musicCurrentSeconds:number = 0
  musicSeconds:number = 0
  musicState:boolean = false // false表示暂停状态,true表示播放状态

  videoController:VideoController = new VideoController()

  build() {
    Column({space:20}){
      Row(){
        Image(this.musicSrc)
          .width('90%')
        // 使用锐角,可以将方形的组件变成圆形
      }.width('100%').height('40%')
      .justifyContent(FlexAlign.Center)
      // 第二行
      Row(){
        Text(this.musicName)
          .fontSize(38)
        Image($rawfile('icons/like.png'))
          .width('24%')
      }.width('80%')
      .justifyContent(FlexAlign.SpaceBetween)
      // 第三行
      Row(){
        Text(this.musicPlayer)
          .fontSize(34)
          .fontColor('#C0C0C0')
      }.width('80%')
      .justifyContent(FlexAlign.Start)
      // 第四行
      Row(){
        Text(this.musicArrangement)
          .fontSize(38)
          .fontColor('#C0C0C0')
      }.width('80%')
      .justifyContent(FlexAlign.Start)


      Video({src:this.musicSrc,controller:this.videoController})
        .width('0%')
        .height('0%')
        .autoPlay(true)

      Progress({ value: this.musicCurrentSeconds, total: this.musicSeconds, type:
      // 使用进度条来代替原本的媒体播放器
      // value:表示当前播放的进度
      // total:表示总体的进度
      // type:表示进度条的样式,ProgressType.Linear,表示线性进度条
      ProgressType.Linear })
        .width('80%').height(10)

      Row(){
        Image($rawfile('icons/last.png'))
          .width('23%')
        Image($rawfile('icons/play.png'))
          .width('23%')
          .onClick(()=>{
            // 点击播放的时候,播放音频
            this.videoController.start() // 表示播放
            console.log("===========> 333333333")
          })
        Image($rawfile('icons/next.png'))
          .width('23%')
        Image($rawfile('icons/list.png'))
          .width('16%')
      }.width('90%')
      .justifyContent(FlexAlign.SpaceEvenly)
    }
    // 设置属性
    // 宽和高,由于是主体布局
    .width('100%')
    .height('100%')
    // 主轴的布局方式
    .justifyContent(FlexAlign.Center)
    // 交叉轴的居中布局方式
    .alignItems(HorizontalAlign.Center)
    // 主体的背景颜色和背景图片
    .backgroundColor('#ffb1eaad')
  }
}

一个简易的播放器页面就设计好啦!!!

制作不易欢迎点赞支持,下一期我们一起学习组件简化和进度条更新~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值