优化 获取视频信息 合并时间段
This commit is contained in:
parent
b9563452c3
commit
5ff60df3d3
|
|
@ -79,16 +79,44 @@ namespace Learn.VideoAnalysis.Controllers
|
|||
return Ok(res);
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
private static List<TimeBase> MergeTimeBases(IEnumerable<TimeBase> timeBases)
|
||||
{
|
||||
if (timeBases == null || timeBases.Count() == 0)
|
||||
{
|
||||
return new List<TimeBase>();
|
||||
}
|
||||
var mergedList = new List<TimeBase>();
|
||||
// 初始化合并段
|
||||
var current = timeBases.First();
|
||||
foreach (var next in timeBases)
|
||||
{
|
||||
// 如果类型相同,则扩展时间段
|
||||
if (current.TimeBaseType == next.TimeBaseType)
|
||||
{
|
||||
current.End = Math.Max(current.End, next.End);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 类型不同,将当前时间段加入结果列表,并开始新时间段
|
||||
current.Content = string.Empty;
|
||||
mergedList.Add(current);
|
||||
current = next;
|
||||
}
|
||||
}
|
||||
// 添加最后的时间段
|
||||
mergedList.Add(current);
|
||||
return mergedList;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取视频信息<para>taskId/tagId二选一</para>
|
||||
/// </summary>
|
||||
/// <param name="taskId"></param>
|
||||
/// <param name="tagId">自定义id</param>
|
||||
/// <param name="needSubtitle">是否附加字幕</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet(Name = "TaskInfo")]
|
||||
/// <summary>
|
||||
/// 获取视频信息<para>taskId/tagId二选一</para>
|
||||
/// </summary>
|
||||
/// <param name="taskId"></param>
|
||||
/// <param name="tagId">自定义id</param>
|
||||
/// <param name="needSubtitle">是否附加字幕</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet(Name = "TaskInfo")]
|
||||
public async Task<IActionResult> TaskInfo(long taskId,string? tagId,bool needSubtitle=false)
|
||||
{
|
||||
var task = await videoTaskDB.AsQueryable()
|
||||
|
|
@ -104,15 +132,7 @@ namespace Learn.VideoAnalysis.Controllers
|
|||
if (task.LastEnum != RedisChannelEnum.EndTask)
|
||||
return BadRequest(taskData);
|
||||
if (!needSubtitle && taskData != null && taskData.TimeBase != null)
|
||||
{
|
||||
taskData.TimeBase = taskData.TimeBase
|
||||
.Select(s =>
|
||||
{
|
||||
s.Content = null;
|
||||
return s;
|
||||
})
|
||||
.ToArray();
|
||||
}
|
||||
taskData.TimeBase = MergeTimeBases(taskData.TimeBase);
|
||||
return Ok(taskData);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ namespace Learn.VideoAnalysis.Controllers.Dto
|
|||
Enum.GetValues(typeof(TimeBaseTypeEnum))
|
||||
.Cast<TimeBaseTypeEnum>()
|
||||
.ToDictionary(x => (int)x, x => x.ToString());
|
||||
|
||||
/// <summary>
|
||||
/// 时间轴合计
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue