I have created Vimeo account for hosting my video and I want to retrieve my video from Vimeo to display in Exoplayer in my android app. this my code but it doesn't work to retrieve video source.
class VideoPlayerActivity : Activity() {
private lateinit var player: SimpleExoPlayer
private lateinit var mediaDataSourceFactory: DataSource.Factory
private var trackSelector: DefaultTrackSelector? = null
private var lastSeenTrackGroupArray: TrackGroupArray? = null
private val videoTrackSelectionFactory = AdaptiveTrackSelection.Factory()
private var currentWindow: Int = 0
private var playbackPosition: Long = 0
private val ivHideControllerButton: ImageView by lazy { findViewById<ImageView>(R.id.exo_controller) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_video_player)
}
private fun initializePlayer() {
trackSelector = DefaultTrackSelector(videoTrackSelectionFactory)
mediaDataSourceFactory = DefaultDataSourceFactory(this, Util.getUserAgent(this, "mediaPlayerSample"))
val mediaSource = ExtractorMediaSource.Factory(mediaDataSourceFactory)
.createMediaSource(Uri.parse("https://vimeo.com/354191291/e72a0cc122"))
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector)
with(player) {
prepare(mediaSource, false, false)
playWhenReady = true
}
playerView.setShutterBackgroundColor(Color.TRANSPARENT)
playerView.player = player
playerView.requestFocus()
ivHideControllerButton.setOnClickListener { playerView.hideController() }
lastSeenTrackGroupArray = null
}
private fun updateStartPosition() {
with(player) {
playbackPosition = currentPosition
currentWindow = currentWindowIndex
playWhenReady = playWhenReady
}
}
private fun releasePlayer() {
updateStartPosition()
player.release()
trackSelector = null
}
public override fun onStart() {
super.onStart()
if (Util.SDK_INT > 23) initializePlayer()
}
public override fun onResume() {
super.onResume()
if (Util.SDK_INT <= 23) initializePlayer()
}
public override fun onPause() {
super.onPause()
if (Util.SDK_INT <= 23) releasePlayer()
}
public override fun onStop() {
super.onStop()
if (Util.SDK_INT > 23) releasePlayer()
}
}
I have tried to retrieve Vimeo for this line val mediaSource = ExtractorMediaSource.Factory(mediaDataSourceFactory) .createMediaSource(Uri.parse("https://vimeo.com/354191291/e72a0cc122")) but it doesn't work for me.
Call vimeo Api on this url "http://player.vimeo.com/video/vimeo-video-id-here/config" and on response to this call get URL of the video and then you can play it on Exoplayer
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With