پخشکننده یوتیوب
پخشکننده چندسکویی یوتیوب با کاتلین.
کامپوزابل YouTubePlayer به شما اجازه میدهد یک پخشکننده ویدیوی یوتیوب را در اپلیکیشن Jetpack Compose خود جای دهید.
حمایت مالی
اگر مایلید از من تشکر کنید یا در توسعه برنامههای آینده مشارکت داشته باشید، میتوانید به من کمک مالی کنید. این کار به من کمک میکند تا بیشتر بر روی پروژه تمرکز کنم.همچنین میتوانید برای دریافت بهروزرسانیهای جدید من را در پلتفرمهای زیر دنبال کنید
نصب
شما میتوانید این کتابخانه را با استفاده از Gradle به پروژه خود اضافه کنید.چندسکویی برای افزودن به یک پروژه چندسکویی، وابستگی را به سورسست مشترک اضافه کنید:
repositories {
mavenCentral()
}kotlin {
sourceSets {
commonMain {
dependencies {
implementation("io.github.ilyapavlovskii:youtubeplayer-compose:${latest_version}")
}
}
}
}
نحوه استفاده
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
},
)
تابع کامپوزبل پارامترهای اصلی زیر را دارد:options- برای ساخت گزینههای پخشکننده. تمامی پارامترها از مستندات رسمی آیفریم یوتیوب گرفته شدهاند.hostState- کنترلکننده برای پیگیری وضعیت پخشکننده یوتیوب و اجرای دستورات یکباره
YouTubePlayerHostState
کنترلکننده اصلی. شامل دو مؤلفه عمومی اصلی است:- currentState - وضعیت فعلی پخشکننده یوتیوب روی صفحه را مشخص میکند. ممکن است یکی از این حالتها باشد: Idle، Ready، Playing، Error
- executeCommand - تابع معلق برای اجرای دستورات پخشکننده. فقط یک آرگومان میگیرد - YouTubeExecCommand. همچنین توابع اضافی کمکی مانند:
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
وضعیت پخشکننده YouTube وضعیت واقعی پخشکننده یوتیوب را روی صفحه تعریف میکند. شامل حالات ممکن زیر است:Idle- حالت Idle به این معنی است که پخشکننده هنوز مقداردهی اولیه نشده استReady- به این معنی است که پخشکننده آماده پخش استPlaying- پخشکننده در حال پخش ویدیو است. شامل پارامترهای زیر میباشد:
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- حالت خطا را با پیام خطا درون خود تعریف میکند.
YouTubeExecCommand
LoadVideo(val videoId: YouTubeVideoId,val startSeconds: Duration)- بارگذاری ویدیو با آیدی یوتیوب. امکان شروع با افست زمان پیشفرض وجود دارد.Play- پخش ویدیوPause- توقف ویدیوSeekTo(val duration: Duration)- رفتن به زمان مشخصی از ویدیوSeekBy(val duration: Duration)- جابجایی ویدیو به میزان زمان مشخصMute- بیصدا کردن صداUnmute- فعالسازی صداSetVolume(val volumePercent: Int)- تنظیم حجم صدا. مقدار ورودی مورد انتظار بین ۰ تا ۱۰۰.NextVideo- رفتن به ویدیوی بعدیPreviousVideo- رفتن به ویدیوی قبلیSetLoop(val loop: Boolean)- تکرار ویدیو. توسط آرگومان کنترل میشود.SetShuffle(val shuffle: Boolean)- پخش تصادفی ویدیوها. توسط آرگومان کنترل میشود.
YouTubeEvent
Ready- زمانی که مقداردهی اولیه پلیر یوتیوب کامل شد فراخوانی میشودPlaybackQualityChange(val quality: Quality)- هنگام تغییر کیفیت پلیر فراخوانی میشودError(val error: String)- رویداد مدیریت خطا. برای جزئیات به آرگومان مراجعه کنید.VideoDuration(val duration: Duration)- هنگام مقداردهی اولیه مدت زمان ویدیو فراخوانی میشودStateChanged(val state: State)- هنگام تغییر وضعیت ویدیو فراخوانی میشود:UNSTARTED,ENDED,PLAYING,PAUSED,BUFFERING,CUED.TimeChanged(val time: Duration)- زمان فعلی تغییر کردOnVideoIdHandled(val videoId: YouTubeVideoId)- کالبک زمانی که ویدیو بارگذاری شد
نمونه

مجوز
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
---