YouTubePlayer
YouTube kotlin multiplatform player.
Komponent YouTubePlayer pozwala na osadzenie odtwarzacza YouTube w Twojej aplikacji Jetpack Compose.
Wsparcie
Jeśli chcesz mi podziękować lub wesprzeć rozwój projektu, możesz przekazać darowiznę. To pomaga mi bardziej skoncentrować się na projekcie.Możesz również zasubskrybować mnie na poniższych platformach, aby być na bieżąco z aktualizacjami moich tematów
Instalacja
Możesz dodać tę bibliotekę do swojego projektu za pomocą Gradle.Multiplatform Aby dodać do projektu multiplatformowego, dodaj zależność do wspólnego source-setu:
repositories {
mavenCentral()
}kotlin {
sourceSets {
commonMain {
dependencies {
implementation("io.github.ilyapavlovskii:youtubeplayer-compose:${latest_version}")
}
}
}
}
Użytkowanie
val coroutineScope = rememberCoroutineScope()
val hostState = remember { YouTubePlayerHostState() }when(val state = hostState.currentState) {
is YouTubePlayerState.Error -> {
Text(text = "Error: ${state.message}")
}
YouTubePlayerState.Idle -> {
// Do nothing, waiting for initialization
}
is YouTubePlayerState.Playing -> {
// Update UI button states
}
YouTubePlayerState.Ready -> coroutineScope.launch {
hostState.loadVideo(YouTubeVideoId("ufKj1sBrC4Q"))
}
}
YouTubePlayer(
modifier = Modifier
.fillMaxWidth()
.height(300.dp)
.gesturesDisabled(),
hostState = hostState,
options = SimpleYouTubePlayerOptionsBuilder.builder {
autoplay(true)
mute(true) // autoplay works only with mute for mobile devices
controls(false)
rel(false)
ivLoadPolicy(false)
ccLoadPolicy(false)
fullscreen = true
},
)
Funkcja kompozycyjna ma następujące główne parametry:
options- do budowania opcji odtwarzacza. Wszystkie parametry zawinięte z oficjalnej dokumentacji iframe YouTube.hostState- kontroler do śledzenia stanu odtwarzacza YouTube i wykonywania jednorazowych poleceń
YouTubePlayerHostState
Główny kontroler. Zawiera 2 główne publiczne komponenty:- currentState - określa aktualny stan odtwarzacza YouTube na ekranie. Może być: Idle, Ready, Playing, Error
- executeCommand - funkcja zawieszająca do wykonywania poleceń odtwarzacza. Przyjmuje tylko jeden argument - YouTubeExecCommand. Posiada również dodatkowe funkcje pomocnicze, takie jak:
suspend fun loadVideo(videoId: YouTubeVideoId) = executeCommand(YouTubeExecCommand.LoadVideo(videoId))
suspend fun play() = executeCommand(YouTubeExecCommand.Play)
suspend fun pause() = executeCommand(YouTubeExecCommand.Pause)
suspend fun seekTo(duration: Duration) = executeCommand(YouTubeExecCommand.SeekTo(duration))
suspend fun seekBy(duration: Duration) = executeCommand(YouTubeExecCommand.SeekBy(duration))
suspend fun mute() = executeCommand(YouTubeExecCommand.Mute)
suspend fun unMute() = executeCommand(YouTubeExecCommand.Unmute)
suspend fun setVolume(volume: Int) = executeCommand(YouTubeExecCommand.SetVolume(volume))
suspend fun setPlaybackRate(rate: Float) = executeCommand(YouTubeExecCommand.SetPlaybackRate(rate))
suspend fun toggleFullScreen() = executeCommand(YouTubeExecCommand.ToggleFullscreen)YouTubePlayerState
Stan odtwarzacza YouTube definiuje aktualny stan odtwarzacza YouTube na ekranie. Zawiera następujące możliwe stany:Idle- Stan bezczynności oznacza, że odtwarzacz nie został jeszcze zainicjowanyReady- Oznacza, że odtwarzacz jest gotowy do odtwarzaniaPlaying- Odtwarzacz odtwarza wideo. Zawiera następujące parametry:
videoId: YouTubeVideoId - id of the video that is playing
duration: Duration - duration of the video
currentTime: Duration - current time of the video
quality: YouTubeEvent.PlaybackQualityChange.Quality - quality of the video, see [YouTubeEvent.PlaybackQualityChange.Quality]
isPlaying: Boolean - is video playing
Error- Definiuje stan błędu z komunikatem błędu wewnątrz.
YouTubeExecCommand
LoadVideo(val videoId: YouTubeVideoId,val startSeconds: Duration)- załaduj wideo według identyfikatora YouTube. Możliwe rozpoczęcie od domyślnego przesunięcia czasu.Play- odtwarzaj wideoPause- wstrzymaj wideoSeekTo(val duration: Duration)- przesuń wideo do określonego czasuSeekBy(val duration: Duration)- przesuń wideo o określony czasMute- wycisz dźwiękUnmute- włącz dźwiękSetVolume(val volumePercent: Int)- ustaw głośność. Oczekiwana wartość argumentu od 0 do 100.NextVideo- przejdź do następnego wideoPreviousVideo- przejdź do poprzedniego wideoSetLoop(val loop: Boolean)- powtarzaj wideo. Zarządzane przez argument.SetShuffle(val shuffle: Boolean)- odtwarzaj losowo wideo. Zarządzane przez argument.
YouTubeEvent
Ready- wywoływane po zakończeniu inicjalizacji odtwarzacza YouTubePlaybackQualityChange(val quality: Quality)- wywoływane po zmianie jakości odtwarzaniaError(val error: String)- zdarzenie obsługi błędu. Szczegóły w argumencie.VideoDuration(val duration: Duration)- wywoływane po zainicjowaniu długości wideoStateChanged(val state: State)- wywoływane po zmianie stanu wideo:UNSTARTED,ENDED,PLAYING,PAUSED,BUFFERING,CUED.TimeChanged(val time: Duration)- zmiana znacznika czasuOnVideoIdHandled(val videoId: YouTubeVideoId)- wywołanie zwrotne po załadowaniu wideo
Przykład

LICENCJA
Copyright 2026 Ilia PavlovskiiLicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
---
Tranlated By Open Ai Tx | Last indexed: 2026-06-12
---