I recently got an Android job to develop a Local Church TV android application. My choice was to go with the latest tech stack on the Android application. One of the features they wanted be implemented was the YouTube live stream to be loaded into the app. I had to research the best way to implement it, and the library: implementation("com.pierfrancescosoffritti.androidyoutubeplayer:core:12.1.0")
became handy in this. I will outline the steps you may follow to have your YouTube or video loaded into the Jetpack Compose Android application.
STEP 1
On your Android studio, left-hand side of the editor, open the project explorer
, expand the Gradle folder to get to the build.gradle--Module:app
as in the image below
open the file. I like separating my third-party dependencies from the default editor dependencies, so I will have the
// third-party dependencies
loaded to the build.gradle file. Sync the project and test running the application on your device to confirm the import didn't break the application.
implementation("com.pierfrancescosoffritti.androidyoutubeplayer:core:12.1.0")
// end third-party dependencies
STEP 2
Create a composable, for this case, I have called it LiveTvScreen
@Composable
fun LiveTvScreen(
videoId: String
) {
val ctx = LocalContext.current
AndroidView(factory = {
var view = YouTubePlayerView(it)
val fragment = view.addYouTubePlayerListener(
object : AbstractYouTubePlayerListener() {
override fun onReady(youTubePlayer:
YouTubePlayer) {
super.onReady(youTubePlayer)
youTubePlayer.loadVideo(videoId, 0f)
}
}
)
view
})}
Then in your MainActivity
load the LiveTvScreen
composable as below.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LiveTvScreen("BJ3Yv572V1A")
//'BJ3Yv572V1A' is the channel ID from
https://youtu.be/BJ3Yv572V1A
}
}
}
That it, when you run the application, it should show as the first image shown in this article. Thank you.
Top comments (1)
is this lib compatible with android tv focus management?