Web Analytics

YouTubePlayer

⭐ 92 stars Polish by IlyaPavlovskii

🌐 Język

YouTubePlayer

Maven Central Kotlin Compose Multiplatform

badge-android badge-ios

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

medium habr

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:

YouTubePlayerHostState

Główny kontroler. Zawiera 2 główne publiczne komponenty:
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:
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

Przykład

Sample

LICENCJA

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