Web Analytics

YouTubePlayer

⭐ 92 stars German by IlyaPavlovskii

🌐 Sprache

YouTubePlayer

Maven Central Kotlin Compose Multiplatform

badge-android badge-ios

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

medium habr

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:

YouTubePlayerHostState

Der Hauptcontroller. Enthält zwei wesentliche öffentliche Komponenten:
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:
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

YouTubeExecCommand

YouTubeEvent

Beispiel

Beispiel

LIZENZ

Copyright 2026 Ilia Pavlovskii

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