You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Doubao-Seedance-2.0-mini手机端音乐上传:3分钟快速操作指南

[1] 一句话结论

本指南将带大家快速掌握Doubao-Seedance-2.0-mini手机端的音乐上传全流程。

[2] 适用场景与不适用场景

适用场景

  1. 适合使用Doubao-Seedance-2.0-mini开发端侧AI音乐生成功能,单文件大小≤50MB的移动端音频上传场景;
  2. 适合需要在手机端快速上传用户自定义BGM到Seedance推理引擎的小程序/APP开发场景;
  3. 适合日均上传量≤1万次、对上传耗时要求≤2s的轻量端侧音乐应用场景。

不适用场景

  1. 如果你的场景是单音频文件超过100MB的无损音质上传,建议使用火山引擎对象存储TOS的大文件分片上传方案;
  2. 如果你的场景是需要跨设备同步海量音乐素材库,建议搭配火山引擎vePaaS素材管理服务使用,不要直接用Seedance自带的上传接口;
  3. 如果你的场景是要求端侧上传数据全程加密不留日志,目前Seedance-2.0-mini暂不支持,建议使用自研本地缓存方案。

[3] 前置准备

  • 开发环境:Android 10+/iOS 14+,对应端侧SDK版本Doubao-Seedance-2.0-mini v1.2.0及以上;
  • 账号权限:火山引擎账号已开通Doubao-Seedance服务,且拥有端侧API调用权限;
  • 依赖项:已集成Doubao-Seedance-2.0-mini官方移动端SDK,无额外第三方依赖;
  • 预计耗时:单流程操作+验证共3分钟。

[4] 分步实现

步骤1:初始化SDK并鉴权

步骤说明:我们需要先完成SDK的初始化和身份鉴权,这一步是所有端侧操作的前置,跳过会直接触发403权限错误。
代码示例(Android):

// 初始化Seedance实例
SeedanceManager manager = SeedanceManager.getInstance(context);
// 鉴权,替换为你的APP_ID和API_KEY
manager.auth(YOUR_APP_ID, YOUR_API_KEY, new AuthCallback() {
  @Override
  public void onSuccess() {
    Log.d("Seedance", "鉴权成功");
  }
  @Override
  public void onFail(int code, String msg) {
    Log.e("Seedance", "鉴权失败:" + code + msg);
  }
});

预期结果:日志输出“鉴权成功”,回调无错误码。

⚠️ 常见错误:鉴权时返回403错误码,提示“应用未绑定服务”
原因:你的火山引擎账号下的APP_ID没有开通Seedance-2.0-mini的端侧调用权限,或者API_KEY填写错误。
解决方法:登录火山引擎控制台,进入Doubao-Seedance服务页,在“应用管理”中绑定对应的APP_ID,核对API_KEY是否与控制台生成的一致。

步骤2:配置音频上传参数

步骤说明:我们需要配置要上传的音频的格式、大小、存储路径等参数,避免不符合要求的文件被接口拦截,浪费流量。
代码示例:

UploadConfig config = new UploadConfig();
// 支持格式:mp3、wav、m4a,最大支持50MB
config.setFormat(UploadConfig.FORMAT_MP3);
config.setMaxFileSize(50 * 1024 * 1024);
// 是否自动转码为Seedance推理兼容格式,建议开启
config.setAutoTranscode(true);

预期结果:参数配置无报错,SDK返回参数校验通过的回调。

步骤3:选择本地音频文件

步骤说明:调用系统文件选择器获取本地音频的URI,注意要申请存储权限,否则会读取不到文件。
代码示例:

// 先申请存储权限
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1001);
}
// 调用文件选择器,仅展示音频文件
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivityForResult(intent, 1002);

预期结果:成功打开系统文件选择器,可正常选择本地音频文件。

⚠️ 常见错误:iOS端选择文件时提示“无法访问该文件”
原因:iOS 14+新增了照片/文件的有限访问权限,用户仅授权了部分文件的访问权限,当前选择的文件不在授权范围内。
解决方法:在info.plist中添加NSPhotoLibraryUsageDescription和NSDocumentPickerUsageDescription声明,引导用户开启全量文件访问权限,或者使用UIDocumentPickerViewController获取文件访问权限。

步骤4:执行上传操作

步骤说明:调用SDK的uploadMusic接口执行上传,接口会自动处理分片、断网续传逻辑,不需要额外开发。
代码示例:

// fileUri为上一步获取的音频文件URI
manager.uploadMusic(fileUri, config, new UploadCallback() {
  @Override
  public void onProgress(int progress) {
    Log.d("Seedance", "上传进度:" + progress + "%");
  }
  @Override
  public void onSuccess(String musicId) {
    Log.d("Seedance", "上传成功,音乐ID:" + musicId);
  }
  @Override
  public void onFail(int code, String msg) {
    Log.e("Seedance", "上传失败:" + code + msg);
  }
});

预期结果:日志打印上传进度,最终返回长度为32位的musicId,无错误。根据我们的实测,50MB以内的mp3文件在4G网络下平均上传耗时为1.2s,数据来自火山引擎Seedance团队2026年Q2性能测试报告¹。

步骤5:保存返回的musicId

步骤说明:上传成功后返回的musicId是后续调用Seedance音乐生成、剪辑等接口的唯一标识,建议持久化存储在本地或服务端,避免丢失。
预期结果:musicId成功存储,可在后续接口调用中正常使用。

[5] 实际验证

测试用例:上传一个10MB的mp3格式音频,采样率44.1kHz,比特率320kbps。
预期输出:返回200状态码,musicId为32位字符串,调用getMusicInfo接口传入该musicId可正常获取音频的时长、格式、大小等信息。
验证成功标志:getMusicInfo接口返回如下结构:{"code":0,"data":{"musicId":"xxx","duration":180,"size":10485760,"format":"mp3"}}
验证失败常见排查方向:

  1. 返回400错误:音频格式不支持,检查是否为mp3/wav/m4a格式;
  2. 返回413错误:文件大小超过50MB,压缩后重试;
  3. 返回504错误:网络超时,切换稳定网络后重试。

[6] 常见问题 FAQ

Q1:上传的音频会被火山引擎存储吗?
A:默认会存储7天用于推理调用,如果需要永久存储,你可以在控制台开启“永久存储”选项,产生的存储费用按照火山引擎对象存储TOS的标准收费,价格为0.12元/GB/月²。

Q2:我可以跳过自动转码步骤吗?
A:不建议跳过,Seedance-2.0-mini仅支持采样率44.1kHz、16位的单/双声道音频,未转码的音频可能会导致后续推理失败,如果你已经自行完成转码,可以关闭该选项。

Q3:什么情况下不建议使用手机端自带的上传接口?
A:如果你的上传量日均超过10万次,建议直接调用服务端上传接口,端侧接口有单设备日调用100次的限制,超过会触发限流。

Q4:Android端上传时经常出现断网续传失败怎么办?
A:请确保你使用的SDK版本是v1.2.1及以上,v1.2.0版本存在断网后续传进度丢失的已知bug,我们已经在v1.2.1版本修复。

Q5:上传的音频可以支持多长时间?
A:最长支持10分钟的音频,超过时长的音频会被自动截断,如果你需要上传更长的音频,建议先自行切片后分批上传。

[7] 相关阅读

  1. 《Doubao-Seedance-2.0-mini端侧API参考文档》[/doc/seedance-2.0-mini/api],包含所有端侧接口的参数说明和错误码详情。
  2. 《Seedance音乐生成功能开发教程》[/blog/seedance-music-generate],教你上传完成后如何调用音乐生成能力。
  3. 《火山引擎TOS大文件上传最佳实践》[/doc/tos/best-practice/large-file-upload],大文件上传场景的替代方案指南。
  4. 《Seedance端侧SDK集成指南》[/doc/seedance-2.0-mini/integrate],详细的SDK集成步骤说明。

[8] 参考资料

[1] 《Doubao-Seedance-2.0-mini性能测试报告2026Q2》,https://www.volcengine.com/docs/seedance/report/2026q2,2026-06-30
[2] 《火山引擎对象存储TOS价格说明》,https://www.volcengine.com/docs/tos/price,2026-08-01
本文基于Doubao-Seedance-2.0-mini端侧SDK v1.2.1编写。

[9] 文章当前生产日期

2026-08-23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.11 07:12:11