插件介绍

flutter_music_player 是一个简单而实用的音乐播放器演示项目,使用 Flutter 框架开发,支持在 HarmonyOS(鸿蒙系统)上运行。该播放器提供了完整的音乐播放控制功能,包括播放/暂停、上一曲/下一曲切换、进度条拖动、播放时间显示等核心功能。

在这里插入图片描述

主要功能特性:

  • 支持基本的音乐播放控制(播放/暂停、上一曲/下一曲)
  • 实时显示播放进度和总时长
  • 支持拖动进度条调整播放位置
  • 自动播放下一首歌曲
  • 美观的用户界面,包含背景图片、专辑封面和控制按钮
  • 与 HarmonyOS 原生 AVPlayer 集成,提供优质的音频播放体验

使用步骤

1. 包的引入

由于这是一个自定义修改版本的 Flutter 包,需要通过 Git 形式引入。在您的 HarmonyOS Flutter 项目中的 pubspec.yaml 文件中添加以下依赖配置:

dependencies:
  flutter:
    sdk: flutter
  music_player:
    git:
      url: "https://atomgit.com/"
      path: "packages/music_player/music_player"
  flutter_svg: ^1.1.2
  logging: ^1.1.0

2. 项目配置

在使用音乐播放器之前,需要确保在 HarmonyOS 项目中正确配置了原生插件:

  1. ohos/entry/src/main/ets/plugin/ 目录下确保存在 AVPlayerPlugin.ets 文件
  2. GeneratedPluginRegistrant.ets 中注册该插件
  3. 将音乐文件放置在 ohos/entry/src/main/resources/rawfile/ 目录下

3. API 调用示例

下面是使用 flutter_music_player 包的基本示例:

import 'package:flutter/material.dart';
import 'package:music_player/pages/home_page.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  
  Widget build(BuildContext context) {
    return MaterialApp(
        title: "音乐播放器",
        theme: ThemeData(primaryColor: Colors.blue),
        home: const Scaffold(
          body: HomePage(),
        ));
  }
}
核心 API 说明

播放控制 API:

// 播放或暂停
void playOrPause() {
  _channel.invokeMethod("playOrPause");
}

// 播放下一首
void next() {
  _channel.invokeMethod("next");
}

// 播放上一首
void previous() {
  _channel.invokeMethod("previous");
}

// 跳转到指定位置(单位:毫秒)
void seek(int position) {
  _channel.invokeMethod("seek", {"seekValue": position});
}

// 获取音乐总时长
Future<int> getMusicDuration() async {
  int result = await _channel.invokeMethod("getDuration");
  return result;
}

状态监听:

_channel.setMethodCallHandler((call) async {
  String method = call.method;
  Map<String, dynamic> mapValue = call.arguments;

  switch (method) {
    // 更新播放进度
    case 'updateTime':
      int time = (mapValue['time'] / 1000).toInt();
      int duration = (mapValue['duration'] / 1000).toInt();
      // 更新UI显示
      break;
    // 播放状态变更
    case "notifyStateChange":
      String state = mapValue['state'];
      // 处理状态变更(playing、paused、completed等)
      break;
  }
});

4. 音乐列表配置

home_page.dart 中配置您的音乐列表:

List<MusicInfo> musicList = [
  MusicInfo(0, "Dream It Possible", "Dream_It_Possible.mp3"),
  MusicInfo(1, "Piano Man - Billy Joel", "english.mp3"),
  MusicInfo(2, "消化不良 - 周国贤", "yueyu.mp3"),
  // 添加更多歌曲...
];

总结

flutter_music_player 是一个功能完整的音乐播放器示例,展示了如何在 HarmonyOS 上使用 Flutter 开发音频播放应用。该包通过 MethodChannel 与 HarmonyOS 原生 AVPlayer 集成,提供了良好的音频播放体验。

主要特点包括:

  • 完整的音乐播放控制功能
  • 美观的用户界面设计
  • 与 HarmonyOS 原生系统的无缝集成
  • 支持自定义音乐列表

通过本指南,您可以轻松地将这个音乐播放器集成到您的 HarmonyOS Flutter 项目中,并根据需要进行自定义扩展。

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐