Features: - VOD library with movie grouping and version detection - TV show library with season/episode organization - TMDB integration for trending shows and recently aired episodes - Recent releases section with TMDB release date sorting - Watch history tracking with continue watching - Playlist caching (12-hour TTL) for offline support - M3U playlist parsing with XStream API support - Authentication with credential storage Technical: - SwiftUI for tvOS - Actor-based services for thread safety - Persistent caching for playlists, TMDB data, and watch history - KSPlayer integration for video playback Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 lines
1.4 KiB
Swift
37 lines
1.4 KiB
Swift
//
|
|
// AudioPlayerView.swift
|
|
// VoiceNote
|
|
//
|
|
// Created by kintan on 2018/8/16.
|
|
//
|
|
|
|
#if canImport(UIKit)
|
|
import UIKit
|
|
#else
|
|
import AppKit
|
|
#endif
|
|
open class AudioPlayerView: PlayerView {
|
|
override public init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
toolBar.timeType = .min
|
|
toolBar.spacing = 5
|
|
toolBar.addArrangedSubview(toolBar.playButton)
|
|
toolBar.addArrangedSubview(toolBar.currentTimeLabel)
|
|
toolBar.addArrangedSubview(toolBar.timeSlider)
|
|
toolBar.addArrangedSubview(toolBar.totalTimeLabel)
|
|
toolBar.playButton.tintColor = UIColor(rgb: 0x2166FF)
|
|
toolBar.timeSlider.setThumbImage(UIColor(rgb: 0x2980FF).createImage(size: CGSize(width: 2, height: 15)), for: .normal)
|
|
toolBar.timeSlider.minimumTrackTintColor = UIColor(rgb: 0xC8C7CC)
|
|
toolBar.timeSlider.maximumTrackTintColor = UIColor(rgb: 0xEDEDED)
|
|
toolBar.timeSlider.trackHeigt = 7
|
|
addSubview(toolBar)
|
|
toolBar.translatesAutoresizingMaskIntoConstraints = false
|
|
NSLayoutConstraint.activate([
|
|
toolBar.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 7),
|
|
toolBar.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -12),
|
|
toolBar.topAnchor.constraint(equalTo: topAnchor),
|
|
toolBar.bottomAnchor.constraint(equalTo: bottomAnchor),
|
|
])
|
|
}
|
|
}
|