问题描述:
在调用删除音频(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