|
|
@@ -2292,13 +2292,21 @@ class AnimeService
|
|
|
|
|
|
// 如果有全局更新,获取该角色的所有分镜数据并检查是否有变化
|
|
|
if (!empty($global_update_data)) {
|
|
|
- if (!$target_voice_actor) Utils::throwError('20003:角色异常');
|
|
|
-
|
|
|
- $affected_segments = DB::table('mp_episode_segments')
|
|
|
- ->where('episode_id', $episode_id)
|
|
|
- ->where('voice_actor', $target_voice_actor)
|
|
|
- ->select('segment_id', 'audio_url', 'voice_actor', 'dialogue', 'voice_type', 'voice_name', 'voice_audio_url', 'emotion', 'emotion_type', 'gender', 'speed_ratio', 'loudness_ratio', 'emotion_scale', 'pitch')
|
|
|
- ->get();
|
|
|
+ // 如果角色不存在,则只更新当前分镜
|
|
|
+ if (!$target_voice_actor) {
|
|
|
+ // 只处理当前分镜
|
|
|
+ $affected_segments = DB::table('mp_episode_segments')
|
|
|
+ ->where('segment_id', $segment_id)
|
|
|
+ ->select('segment_id', 'audio_url', 'voice_actor', 'dialogue', 'voice_type', 'voice_name', 'voice_audio_url', 'emotion', 'emotion_type', 'gender', 'speed_ratio', 'loudness_ratio', 'emotion_scale', 'pitch')
|
|
|
+ ->get();
|
|
|
+ } else {
|
|
|
+ // 获取该角色的所有分镜
|
|
|
+ $affected_segments = DB::table('mp_episode_segments')
|
|
|
+ ->where('episode_id', $episode_id)
|
|
|
+ ->where('voice_actor', $target_voice_actor)
|
|
|
+ ->select('segment_id', 'audio_url', 'voice_actor', 'dialogue', 'voice_type', 'voice_name', 'voice_audio_url', 'emotion', 'emotion_type', 'gender', 'speed_ratio', 'loudness_ratio', 'emotion_scale', 'pitch')
|
|
|
+ ->get();
|
|
|
+ }
|
|
|
|
|
|
foreach ($affected_segments as $seg) {
|
|
|
$seg = (array)$seg;
|