Flutter生成人类头像插件human_avatar的使用
Flutter生成人类头像插件human_avatar的使用
介绍
human_avatar
是一个用于创建人类头像和视频的 Flutter 插件。
安装
要使用此插件,在 pubspec.yaml
文件中添加以下依赖项:
dependencies:
human_avatar: any
开始使用
在开始使用 human_avatar
之前,你需要在 Elai 平台上注册并生成你的密钥。请参阅文档以获取更多信息。
创建头像
使用以下代码创建头像:
await _humanAvatarPlugin.createAvatar(
secretKey: secretKey,
gender: "male",
photoName: photo.name,
photoData: _base64String,
);
创建视频
使用以下代码创建视频:
await _humanAvatarPlugin.createVideoAvatar(
secretKey: secretKey,
imageUrl: data?.frontendConfig?.canvas ?? '',
speechText: "this is my first text video",
gender: "male",
avatarName: "",
avatarId: data?.avatarDataId ?? '',
onRender: (value) {
print(value.url);
createVideoAvatarData = value;
}
);
示例代码
以下是完整的示例代码:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:human_avatar/human_avatar.dart';
import 'package:human_avatar/models/AvatarData.dart';
import 'package:human_avatar/models/CreateVideoAvatarData.dart';
import 'package:human_avatar_example/video_player_view.dart';
import 'package:image_picker/image_picker.dart';
void main() {
runApp(const MaterialApp(home: MyApp()));
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final secretKey = 'Z0BHr9hDpHw0yl9pQsiMHTN6cXdfgdfga'; // 你的密钥
/// 初始化 HumanAvatar 插件
final _humanAvatarPlugin = HumanAvatar();
/// 用于处理创建头像的响应
AvatarData? data;
/// 用于处理创建头像视频的响应
CreateVideoAvatarData? createVideoAvatarData;
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
createVideoAvatarData?.url ?? "No url found",
style: const TextStyle(color: Colors.black),
),
if (createVideoAvatarData?.url == null) ...{
GestureDetector(
onTap: () async {
/// 导航到视频播放器,并传入创建的视频 URL
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
VideoPlayerView(createVideoAvatarData?.url ?? '')));
},
child: Container(
margin:
const EdgeInsets.symmetric(horizontal: 30, vertical: 10),
height: 50,
width: double.infinity,
color: Colors.black,
child: const Center(
child: Text(
'查看视频',
style: TextStyle(color: Colors.white),
))),
),
},
GestureDetector(
onTap: () async {
/// 打开设备相机
final XFile? photo =
await ImagePicker().pickImage(source: ImageSource.camera);
if (photo != null) {
Uint8List bytes = await photo.readAsBytes();
String base64String = base64.encode(bytes);
/// 调用创建图像头像
data = await _humanAvatarPlugin.createAvatar(
secretKey: secretKey,
gender: "male",
photoName: photo.name,
photoData: base64String // 图像数据以 base64 编码
);
if (data != null) {
setState(() {});
}
}
},
child: Container(
margin:
const EdgeInsets.symmetric(horizontal: 30, vertical: 20),
height: 50,
width: double.infinity,
color: Colors.black,
child: const Center(
child: Text(
'创建头像',
style: TextStyle(color: Colors.white),
))),
),
if (data?.frontendConfig?.thumbnail != null) ...{
GestureDetector(
onTap: () async {
/// 调用创建视频,使用你的头像 URL
await _humanAvatarPlugin.createVideoAvatar(
secretKey: secretKey,
imageUrl: data?.frontendConfig?.canvas ?? '',
speechText: "this is my first text video",
gender: data?.frontendConfig?.gender ?? '',
avatarName: "",
avatarId: data?.avatarDataId ?? '',
onRender: (value) {
createVideoAvatarData = value;
setState(() {});
});
},
child: Container(
margin:
const EdgeInsets.symmetric(horizontal: 30, vertical: 10),
height: 50,
width: double.infinity,
color: Colors.black,
child: const Center(
child: Text(
'创建头像视频',
style: TextStyle(color: Colors.white),
))),
),
}
],
),
);
}
}
更多关于Flutter生成人类头像插件human_avatar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter生成人类头像插件human_avatar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用human_avatar
插件来生成人类头像的详细代码示例。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加human_avatar
依赖:
dependencies:
flutter:
sdk: flutter
human_avatar: ^x.y.z # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
2. 导入插件
在你需要生成头像的Dart文件中导入human_avatar
插件:
import 'package:human_avatar/human_avatar.dart';
3. 使用HumanAvatar生成头像
下面是一个简单的示例,展示了如何使用HumanAvatar
小部件来生成一个随机的人类头像:
import 'package:flutter/material.dart';
import 'package:human_avatar/human_avatar.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Human Avatar Example'),
),
body: Center(
child: HumanAvatar(
size: 150, // 头像大小,可以根据需要调整
backgroundColor: Colors.grey[200], // 背景颜色,可选
options: HumanAvatarOptions(
// 配置选项,可以根据需要调整
seed: DateTime.now().millisecondsSinceEpoch, // 使用当前时间作为随机种子
skinColor: Colors.brown.shade200, // 皮肤颜色,可选
hairColor: Colors.black, // 头发颜色,可选
facialFeatures: FacialFeatures(
eyebrows: Eyebrows.thick, // 眉毛类型,可选
eyes: Eyes.open, // 眼睛类型,可选
mouth: Mouth.smile, // 嘴巴类型,可选
),
accessories: [
// 可选配件,如眼镜、帽子等
Accessory.glasses(color: Colors.black),
],
),
),
),
),
);
}
}
4. 运行应用
保存所有文件并运行你的Flutter应用。你应该会在应用的主屏幕上看到一个随机生成的人类头像。
注意事项
HumanAvatarOptions
和FacialFeatures
提供了许多自定义选项,你可以根据需求进行调整。- 插件的版本号可能会更新,所以请确保使用最新的版本号。
- 你可以通过
seed
参数来控制生成头像的随机性,这样每次使用相同的seed
值时都会生成相同的头像。
通过上述步骤,你就可以在Flutter项目中成功使用human_avatar
插件来生成人类头像了。