콘텐츠 상세

- 10초 전/후로 이동 기능 추가
This commit is contained in:
Yu Sung 2025-04-08 12:37:57 +09:00
parent e7427abf1e
commit 51fcb8835e
2 changed files with 56 additions and 24 deletions

View File

@ -170,6 +170,18 @@ extension ContentPlayManager {
} }
} }
func seekBackward10Seconds() {
guard let player = player else { return }
let newTime = max(player.currentTime - 10, 0)
player.currentTime = newTime
}
func seekForward10Seconds() {
guard let player = player else { return }
let newTime = min(player.currentTime + 10, player.duration)
player.currentTime = newTime
}
private func repeatAudio() { private func repeatAudio() {
if let stopTimer = stopTimer { if let stopTimer = stopTimer {
stopTimer() stopTimer()

View File

@ -53,6 +53,16 @@ struct ContentDetailPlayView: View {
) )
.background(Color.black.opacity(0.6)) .background(Color.black.opacity(0.6))
} else if audioContent.releaseDate == nil && !isAlertPreview || (audioContent.isActivePreview && !audioContent.contentUrl.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty) { } else if audioContent.releaseDate == nil && !isAlertPreview || (audioContent.isActivePreview && !audioContent.contentUrl.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty) {
HStack(spacing: 24) {
if !isAlertPreview {
Image("ic_player_prev_10")
.onTapGesture {
if isPlaying() {
contentPlayManager.seekBackward10Seconds()
}
}
}
Image(isPlaying() ? "btn_audio_content_pause" : isAlertPreview ? "btn_audio_content_preview_play" : "btn_audio_content_play") Image(isPlaying() ? "btn_audio_content_pause" : isAlertPreview ? "btn_audio_content_preview_play" : "btn_audio_content_play")
.onTapGesture { .onTapGesture {
ContentPlayerPlayManager.shared.resetPlayer() ContentPlayerPlayManager.shared.resetPlayer()
@ -75,6 +85,16 @@ struct ContentDetailPlayView: View {
isShowPreviewAlert = true isShowPreviewAlert = true
} }
} }
if !isAlertPreview {
Image("ic_player_next_10")
.onTapGesture {
if isPlaying() {
contentPlayManager.seekForward10Seconds()
}
}
}
}
} else if audioContent.releaseDate == nil { } else if audioContent.releaseDate == nil {
Text("해당 콘텐츠는 크리에이터의 요청으로\n미리듣기를 제공하지 않습니다.") Text("해당 콘텐츠는 크리에이터의 요청으로\n미리듣기를 제공하지 않습니다.")
.font(.custom(Font.medium.rawValue, size: 16.7)) .font(.custom(Font.medium.rawValue, size: 16.7))