Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanmedack committed Dec 27, 2017
2 parents 37cc848 + 04b80be commit dbb4ee5
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 58 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ android {
applicationId "de.stefanmedack.ccctv"
minSdkVersion 21
targetSdkVersion 26
versionCode 5
versionName "2.0.0-RC2"
versionCode 6
versionName "2.0.0-RC3"
resConfigs "en", "de"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,7 @@ class ExoPlayerActivity : FragmentActivity() {
companion object {
fun start(activity: FragmentActivity, item: Stream) {
val intent = Intent(activity, ExoPlayerActivity::class.java)
val url = item.urls.find { it.type == TYPE.HLS }?.url ?: item.urls[0].url
// val url = "http://cdn.c3voc.de/hls/sX_native_hd.m3u8"
intent.putExtra(STREAM_URL, url)
intent.putExtra(STREAM_URL, item.urls.find { it.type == TYPE.WEBM }?.url ?: item.urls[0].url)
activity.startActivity(intent)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ import android.support.v17.leanback.media.SurfaceHolderGlueHost
import android.view.SurfaceHolder
import com.google.android.exoplayer2.*
import com.google.android.exoplayer2.C.StreamType
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory
import com.google.android.exoplayer2.source.ExtractorMediaSource
import com.google.android.exoplayer2.source.MediaSource
import com.google.android.exoplayer2.source.TrackGroupArray
import com.google.android.exoplayer2.source.hls.HlsMediaSource
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector
import com.google.android.exoplayer2.trackselection.TrackSelectionArray
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
Expand Down Expand Up @@ -169,13 +170,6 @@ class ExoPlayerAdapter(context: Context) : PlayerAdapter(), Player.EventListener
}
}

override fun seekTo(newPosition: Long) {
if (!mInitialized) {
return
}
mPlayer.seekTo(newPosition)
}

override fun getBufferedPosition(): Long {
return mPlayer.bufferedPosition
}
Expand Down Expand Up @@ -206,17 +200,24 @@ class ExoPlayerAdapter(context: Context) : PlayerAdapter(), Player.EventListener
*/
fun onCreateMediaSource(uri: Uri): MediaSource {
val userAgent = Util.getUserAgent(context, "ExoPlayerAdapter")
return ExtractorMediaSource(uri,
DefaultHttpDataSourceFactory(userAgent, null, DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS, true),
DefaultExtractorsFactory(), null, null)


// HLS does not seem to work currently
// return HlsMediaSource(
// uri,
// DefaultHttpDataSourceFactory(
// userAgent,
// null,
// DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
// DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS,
// true),
// null,
// null)

return HlsMediaSource(
uri,
DefaultHttpDataSourceFactory(
userAgent,
null,
DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS,
true),
null,
null)
}

private fun prepareMediaForPlaying() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,9 @@ class ExoPlayerFragment : VideoSupportFragment() {
// mediaPlayerGlue.subtitle = event.subtitle

mediaPlayerGlue.playerAdapter.setDataSource(Uri.parse(videoUrl))

// PlaybackSeekDiskDataProvider.setDemoSeekProvider(mediaPlayerGlue)
mediaPlayerGlue.isSeekEnabled = true
mediaPlayerGlue.isSeekEnabled = false
playWhenReady(mediaPlayerGlue)
backgroundType = PlaybackFragment.BG_LIGHT

}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,41 +3,11 @@ package de.stefanmedack.ccctv.ui.playback
import android.app.Activity
import android.support.v17.leanback.media.PlaybackTransportControlGlue
import android.support.v17.leanback.media.PlayerAdapter
import android.support.v17.leanback.widget.Action
import android.support.v17.leanback.widget.PlaybackControlsRow


// TODO this is a second VideoMediaPlayerGlue implementation, which is obsolete in case it gets merged with the original one
/**
* PlayerGlue for video playback
* @param <T>
</T> */
class VideoMediaPlayerGlue<T : PlayerAdapter>(context: Activity, impl: T) : PlaybackTransportControlGlue<T>(context, impl) {

private val mPipAction: PlaybackControlsRow.PictureInPictureAction = PlaybackControlsRow.PictureInPictureAction(context)

// override fun onCreatePrimaryActions(adapter: ArrayObjectAdapter?) {
// super.onCreatePrimaryActions(adapter)
// if (android.os.Build.VERSION.SDK_INT > 23) {
// adapter?.add(mPipAction)
// }
// }

override fun onActionClicked(action: Action) {
if (shouldDispatchAction(action)) {
dispatchAction(action)
return
}
super.onActionClicked(action)
}

private fun shouldDispatchAction(action: Action): Boolean {
return action === mPipAction
}

private fun dispatchAction(action: Action) {
if (action === mPipAction && android.os.Build.VERSION.SDK_INT > 23) {
(context as Activity).enterPictureInPictureMode()
}
}
}
class VideoMediaPlayerGlue<T : PlayerAdapter>(context: Activity, impl: T) : PlaybackTransportControlGlue<T>(context, impl)

0 comments on commit dbb4ee5

Please sign in to comment.