在鸿蒙上使用 flutter_music_player Flutter Package
flutter_music_player是一个基于Flutter开发的音乐播放器插件,专为HarmonyOS系统设计。该插件提供完整的音乐播放功能,包括播放控制、进度显示、歌曲切换等核心特性,并集成了HarmonyOS原生AVPlayer实现优质音频播放。使用方式简单,通过Git引入依赖后,配置音乐文件路径即可快速集成到项目中。插件支持自定义音乐列表,提供播放状态监听和进度回调API,界面美观易用
插件介绍
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 项目中正确配置了原生插件:
- 在
ohos/entry/src/main/ets/plugin/目录下确保存在AVPlayerPlugin.ets文件 - 在
GeneratedPluginRegistrant.ets中注册该插件 - 将音乐文件放置在
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
更多推荐



所有评论(0)