createVideoAvatar method

Future<CreateVideoAvatarData?> createVideoAvatar(
  1. String secretKey,
  2. String imageUrl,
  3. String speechText,
  4. String gender,
  5. String avatarName,
  6. String videoName,
  7. String avatarId,
  8. Null onRender(
    1. CreateVideoAvatarData value
    ),
)

this is api implementation for create human_avatar Video avatar Here is Api base Url human_avatar create video Here is Api Header human_avatar create video Here is Api body human_avatar create video createVideoAvatar function return response after renderVideoAvatar response Here is Api add request human_avatar create video handle json response data class CreateVideoAvatarData

Implementation

Future<CreateVideoAvatarData?> createVideoAvatar(
    String secretKey,
    String imageUrl,
    String speechText,
    String gender,
    String avatarName,
    String videoName,
    String avatarId,
    Null Function(CreateVideoAvatarData value) onRender) async {
  try {
    final url = Uri.parse('https://apis.elai.io/api/v1/videos');

    final headers = {
      'Accept': 'application/json',
      'Authorization': 'Bearer $secretKey',
      'Content-Type': 'application/json',
    };

    final data = {
      "name": videoName,
      "slides": [
        {
          "id": 1,
          "canvas": {
            "objects": [
              {
                "type": "avatar",
                "version": 2,
                "left": 151.5,
                "top": 36,
                "fill": "#4868FF",
                "scaleX": 0.3,
                "scaleY": 0.3,
                "src": imageUrl,
                "avatarType": "transparent",
                "animation": {
                  "type": null,
                  "exitType": null,
                },
              },
            ],
            "background": "#ffffff",
            "version": "4.4.0",
          },
          "avatar": {
            "id": avatarId,
            "version": 2,
            "name": avatarName,
            "gender": gender,
            "canvas": imageUrl,
          },
          "animation": "fade_in",
          "language": "English",
          "speech": speechText,
          "voice": "en-US-AriaNeural",
          "voiceType": "text",
          "voiceProvider": "azure",
        }
      ],
      "tags": ["test"],
    };

    final response = await http.post(
      url,
      headers: headers,
      body: jsonEncode(data),
    );

    if (response.statusCode == 200) {
      var res = CreateVideoAvatarData.fromJson(jsonDecode(response.body));
      var result = await renderVideoAvatar(secretKey, res.id ?? '', onRender);
      if (result != null) {
        return result;
      } else {
        return null;
      }
    } else {
      return null;
    }
  } catch (e) {
    return null;
  }
}