YouTubePlayer
YouTube Kotlin Multiplatform Player.
Das YouTubePlayer Composable ermöglicht es Ihnen, einen YouTube-Videoplayer in Ihre Jetpack Compose App einzubetten.
Spenden
Wenn Sie mir danken oder zur Entwicklung des Backlogs beitragen möchten, können Sie mir spenden. Das hilft mir, mich mehr auf das Projekt zu konzentrieren.Sie können mir auch auf den folgenden Plattformen folgen, um Updates zu meinen Themen zu erhalten
Installation
Sie können diese Bibliothek mit Gradle zu Ihrem Projekt hinzufügen.Multiplattform Um sie zu einem Multiplattform-Projekt hinzuzufügen, fügen Sie die Abhängigkeit zum gemeinsamen Source-Set hinzu:
repositories {
mavenCentral()
}kotlin {
sourceSets {
commonMain {
dependencies {
implementation("io.github.ilyapavlovskii:youtubeplayer-compose:${latest_version}")
}
}
}
}
Verwendung
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
},
)
Die Composable-Funktion hat die folgenden Hauptparameter:
options- für den Player-Options-Builder. Alle Parameter sind aus der offiziellen YouTube-Iframe-Dokumentation übernommen.hostState- Controller zur Überwachung des YouTube-Player-Status und zur Ausführung von Einmal-Befehlen
YouTubePlayerHostState
Der Hauptcontroller. Enthält zwei wesentliche öffentliche Komponenten:- currentState - definiert den aktuellen YouTube-Player-Status auf dem Bildschirm. Kann sein: Idle, Ready, Playing, Error
- executeCommand - suspendierbare Funktion zur Ausführung von Player-Befehlen. Erhält nur ein Argument - YouTubeExecCommand. Außerdem gibt es zusätzliche Komfortfunktionen wie:
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
Der YouTube-Player-Zustand definiert den aktuellen Zustand des YouTube-Players auf dem Bildschirm. Enthält die folgenden möglichen Zustände:Idle- Der Idle-Zustand bedeutet, dass der Player noch nicht initialisiert istReady- Bedeutet, dass der Player bereit zum Abspielen istPlaying- Der Player spielt ein Video ab. Enthält die folgenden Parameter:
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- Definiert den Fehlerzustand mit einer Fehlermeldung im Inneren.
YouTubeExecCommand
LoadVideo(val videoId: YouTubeVideoId,val startSeconds: Duration)- lädt Video anhand der YouTube-ID. Es ist möglich, mit einer Standard-Startzeit zu beginnen.Play- Video abspielenPause- Video pausierenSeekTo(val duration: Duration)- Video zu einer angegebenen Zeit springenSeekBy(val duration: Duration)- Video um eine angegebene Zeit springenMute- Ton stummschaltenUnmute- Ton wieder einschaltenSetVolume(val volumePercent: Int)- Lautstärke einstellen. Erwarteter Wert von 0 bis 100.NextVideo- zum nächsten Video navigierenPreviousVideo- zum vorherigen Video navigierenSetLoop(val loop: Boolean)- Video wiederholen. Wird durch Argument gesteuert.SetShuffle(val shuffle: Boolean)- Videos zufällig wiedergeben. Wird durch Argument gesteuert.
YouTubeEvent
Ready- wird aufgerufen, wenn die Initialisierung des YouTube Players abgeschlossen istPlaybackQualityChange(val quality: Quality)- wird aufgerufen, wenn sich die Qualität des Players ändertError(val error: String)- Fehlerbehandlungsereignis. Siehe Argument für Details.VideoDuration(val duration: Duration)- wird aufgerufen, wenn die Videodauer initialisiert wurdeStateChanged(val state: State)- wird aufgerufen, wenn sich der Videostatus ändert:UNSTARTED,ENDED,PLAYING,PAUSED,BUFFERING,CUED.TimeChanged(val time: Duration)- Zeitstempel geändertOnVideoIdHandled(val videoId: YouTubeVideoId)- Callback, wenn Video geladen wurde
Beispiel

LIZENZ
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
---