플레이어, 재생목록 콘텐츠 추가/제거
- 만료된 콘텐츠는 재생되지 않고 다음 콘텐츠로 이동하도록 수정 - 아이템 터치 영역을 아이템 전체로 수정
This commit is contained in:
parent
d483b59978
commit
fb1bac83ae
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Reference in New Issue