플레이어, 재생목록 콘텐츠 추가/제거

- 만료된 콘텐츠는 재생되지 않고 다음 콘텐츠로 이동하도록 수정
- 아이템 터치 영역을 아이템 전체로 수정
This commit is contained in:
Yu Sung 2024-12-18 16:02:42 +09:00
parent d483b59978
commit fb1bac83ae
2 changed files with 10 additions and 13 deletions

View File

@ -138,7 +138,11 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
} }
private func handlePlaybackEnded() { private func handlePlaybackEnded() {
playNextContent() if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent {
self.playNextContent()
} else {
self.stop()
}
} }
func playNextContent() { func playNextContent() {
@ -148,11 +152,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
generateUrl(contentId: content.id) { [unowned self] url in generateUrl(contentId: content.id) { [unowned self] url in
self.urlGenerateSuccess(content: content, url: url) self.urlGenerateSuccess(content: content, url: url)
} onFailure: { } onFailure: {
if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { self.playNextContent()
self.playNextContent()
} else {
self.stop()
}
} }
} }
} }
@ -164,11 +164,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
generateUrl(contentId: content.id) { [unowned self] url in generateUrl(contentId: content.id) { [unowned self] url in
self.urlGenerateSuccess(content: content, url: url) self.urlGenerateSuccess(content: content, url: url)
} onFailure: { } onFailure: {
if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { self.playPreviousContent()
self.playNextContent()
} else {
self.stop()
}
} }
} }
} }
@ -196,12 +192,12 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
isLoading = false isLoading = false
player?.pause() player?.pause()
player?.seek(to: .zero) player?.seek(to: .zero)
duration = 0
currentTime = 0 currentTime = 0
} }
func resetPlayer() { func resetPlayer() {
stop() stop()
duration = 0
isShowingMiniPlayer = false isShowingMiniPlayer = false
title = "" title = ""
@ -243,7 +239,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
let jsonDecoder = JSONDecoder() let jsonDecoder = JSONDecoder()
let decoded = try jsonDecoder.decode(ApiResponse<GenerateUrlResponse>.self, from: responseData) let decoded = try jsonDecoder.decode(ApiResponse<GenerateUrlResponse>.self, from: responseData)
if let data = decoded.data, decoded.success { if let data = decoded.data, !data.contentUrl.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty, decoded.success {
onSuccess(data.contentUrl) onSuccess(data.contentUrl)
} else { } else {
self.isLoading = false self.isLoading = false

View File

@ -62,6 +62,7 @@ struct PlaylistAddContentItemView: View {
Image(isChecked ? "ic_check_blue" : "ic_playlist_add") Image(isChecked ? "ic_check_blue" : "ic_playlist_add")
.padding(8) .padding(8)
} }
.contentShape(Rectangle())
.onTapGesture { .onTapGesture {
onClick() onClick()
isChecked.toggle() isChecked.toggle()