zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【FAQ】音频编辑服务在调用删除音频时只是删除了声音时长未变,如何实现删除时不留有空白时长

服务FAQ 实现 如何 删除 调用 音频 只是
2023-09-11 14:20:22 时间

问题描述:

在调用删除音频(audioLane.removeAsset(index))时只是删除了声音时长未变,如何实现删除时不留有空白时长

留有空白时长的原因是因为音频编辑SDK支持多音轨编辑。

解决方法:

当用户对某条音轨中的片段删除后,可能需要播放其他音轨的内容,因此在删除后,留了空白时长,我们会在下一版本提供不留空白时长的删除方法,请您关注一下版本更新说明(预计8月底上线)。

当前您可以参考如下代码进行操作:

// deletedIndex是被删除的Asset的编号。

// duration是指被删除音频片段的时长

// 在删除Asset后调用如下方法

long tempTime;

while (deletedIndex < audioLane.getAssets().size()) {

haeAsset = audioLane.getAssets().get(deletedIndex);

tempTime = haeAsset.getStartTime();

haeAsset.setStartTime(tempTime-duration);

tempTime = haeAsset.getEndTime();

haeAsset.setEndTime(tempTime-duration);

deletedIndex++;

}

问题描述:

音频编辑服务中如何撤销上一步的操作

解决方法:

可以调用下面的方法进行实现:

撤销:HistroyManager.undo(HistoryCallback historyCallback)

重做:HistroyManager.redo(HistoryCallback historyCallback)

示例:

HistoryManager.getInstance().undo(new HistoryCallback() {

@Override

public void success(String actionName) {

// ActionName常量请见com.huawei.hms.audioeditor.sdk.history.impl.ActionName

// ActionName.CHANGE_AUDIO_SPEED_ACTION_NAME

Log.d(TAG, "success: "+actionName);

}

@Override

public void onFailed() {

Log.d(TAG, "onFailed: ");

}

});

 

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh