Skip to content

Commit

Permalink
fixed castSample, simplesample
Browse files Browse the repository at this point in the history
  • Loading branch information
yuyu04 committed Apr 29, 2024
1 parent 6664337 commit 6748649
Show file tree
Hide file tree
Showing 13 changed files with 57 additions and 54 deletions.
Binary file modified libs/PallyconWVMSDK.aar
Binary file not shown.
Binary file modified samples/advanced/app/libs/PallyconWVMSDK.aar
Binary file not shown.
3 changes: 1 addition & 2 deletions samples/advanced/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"
/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<application
android:allowBackup="true"
Expand Down
15 changes: 8 additions & 7 deletions samples/castsample/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,14 @@ dependencies {
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'

// Exo
implementation 'com.google.android.exoplayer:exoplayer:2.18.1'
implementation 'com.google.android.exoplayer:exoplayer-core:2.18.1'
implementation 'com.google.android.exoplayer:exoplayer-dash:2.18.1'
implementation 'com.google.android.exoplayer:exoplayer-hls:2.18.1'
implementation 'com.google.android.exoplayer:extension-ima:2.18.1'
implementation 'com.google.android.exoplayer:extension-okhttp:2.18.1'
implementation 'com.google.android.exoplayer:extension-cast:2.18.1'
implementation "androidx.media3:media3-exoplayer:1.1.1"
implementation "androidx.media3:media3-ui:1.1.1"
implementation "androidx.media3:media3-exoplayer-dash:1.1.1"
implementation "androidx.media3:media3-exoplayer-hls:1.1.1"
implementation "androidx.media3:media3-exoplayer-rtsp:1.1.1"
implementation "androidx.media3:media3-exoplayer-smoothstreaming:1.1.1"
implementation "androidx.media3:media3-datasource-okhttp:1.1.1"
implementation "androidx.media3:media3-cast:1.1.1"

// Gson
implementation 'com.google.code.gson:gson:2.9.1'
Expand Down
Binary file modified samples/castsample/app/libs/PallyconWVMSDK.aar
Binary file not shown.
14 changes: 2 additions & 12 deletions samples/castsample/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />

<application
android:allowBackup="true"
Expand All @@ -16,7 +16,7 @@

<meta-data
android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="com.google.android.exoplayer2.ext.cast.DefaultCastOptionsProvider" />
android:value="androidx.media3.cast.DefaultCastOptionsProvider" />

<activity
android:name=".MainActivity"
Expand All @@ -34,16 +34,6 @@
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
android:theme="@style/Theme.AppCompat"
android:exported="false"/>

<service
android:name="com.pallycon.widevine.service.PallyConDownloadService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.exoplayer.downloadService.action.RESTART" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.media3.common.util.Util
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.SimpleItemAnimator
import com.google.android.exoplayer2.util.Util
import com.pallycon.castsample.databinding.ActivityMainBinding
import com.pallycon.castsample.dialog.TrackSelectDialog
import com.pallycon.widevine.exception.PallyConException
Expand Down Expand Up @@ -81,6 +81,7 @@ class MainActivity : AppCompatActivity() {
val data = contents.find { it.content.url == currentUrl }
data?.let {
val index = contents.indexOf(it)
prepareForIndex(index)
contents[index].subTitle = "Not"
contents[index].status = DownloadState.NOT
adapter?.notifyItemChanged(index)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,25 @@ import android.view.Menu
import android.view.SurfaceView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.google.android.exoplayer2.*
import com.google.android.exoplayer2.ext.cast.CastPlayer
import com.google.android.exoplayer2.ext.cast.SessionAvailabilityListener
import com.google.android.exoplayer2.source.MediaSource
import com.google.android.exoplayer2.ui.StyledPlayerView
import com.google.android.exoplayer2.util.Util
import androidx.media3.common.util.UnstableApi
import androidx.media3.ui.PlayerView
import com.google.android.gms.cast.framework.CastButtonFactory
import com.google.android.gms.cast.framework.CastContext
import com.google.android.gms.cast.framework.CastStateListener
import com.pallycon.castsample.databinding.ActivityPlayerBinding
import com.pallycon.widevine.exception.PallyConException
import com.pallycon.widevine.exception.PallyConLicenseServerException
import com.pallycon.widevine.model.ContentData
import com.pallycon.widevine.model.DownloadState
import com.pallycon.widevine.model.PallyConEventListener
import com.pallycon.widevine.sdk.PallyConWvSDK
import java.util.concurrent.Executors


class PlayerActivity : AppCompatActivity() {
@UnstableApi
@OptIn(UnstableApi::class)
class PlayerActivity : CastStateListener, AppCompatActivity() {

private lateinit var binding: ActivityPlayerBinding
private var playerView: StyledPlayerView? = null
private var playerView: PlayerView? = null
private var castContext: CastContext? = null
private var castPlayer: CastPlayer? = null
private var wvSDK: PallyConWvSDK? = null
private var playerManager: PlayerManager? = null

Expand All @@ -39,7 +35,12 @@ class PlayerActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
castContext = CastContext.getSharedInstance(this)
val castExecutor = Executors.newSingleThreadExecutor()
CastContext.getSharedInstance(this, castExecutor).addOnCompleteListener {
castContext = it.result
castContext?.addCastStateListener(this)
buildSample()
}

binding = ActivityPlayerBinding.inflate(layoutInflater)
setContentView(binding.root)
Expand Down Expand Up @@ -123,19 +124,20 @@ class PlayerActivity : AppCompatActivity() {
},
playerView!!
)

buildSample()
}

override fun onStop() {
super.onStop()
exoPlayer?.playWhenReady = false
if (isFinishing) {
releasePlayer()
}
}

private fun releasePlayer() {
exoPlayer?.release()
playerManager?.release()
}

override fun onCastStateChanged(p0: Int) {
print(p0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,22 @@ import android.content.Context
import android.view.KeyEvent
import android.widget.Toast
import androidx.core.content.res.ResourcesCompat
import com.google.android.exoplayer2.*
import com.google.android.exoplayer2.Player.*
import com.google.android.exoplayer2.ext.cast.CastPlayer
import com.google.android.exoplayer2.ext.cast.SessionAvailabilityListener
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory
import com.google.android.exoplayer2.ui.StyledPlayerControlView
import com.google.android.exoplayer2.ui.StyledPlayerView
import androidx.media3.cast.CastPlayer
import androidx.media3.cast.SessionAvailabilityListener
import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.media3.common.Player.Listener
import androidx.media3.common.Player.STATE_ENDED
import androidx.media3.common.Player.STATE_IDLE
import androidx.media3.common.Timeline
import androidx.media3.common.Tracks
import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
import androidx.media3.ui.PlayerControlView
import androidx.media3.ui.PlayerView
import com.google.android.gms.cast.Cast
import com.google.android.gms.cast.framework.CastContext
import com.pallycon.widevine.exception.PallyConException
import com.pallycon.widevine.exception.PallyConLicenseServerException
Expand Down Expand Up @@ -38,10 +47,11 @@ import com.pallycon.widevine.model.PallyConEventListener
* Manages players and an internal media queue for the demo app.
*
*/
@UnstableApi @OptIn(UnstableApi::class)
internal class PlayerManager(
context: Context,
listener: Listener,
playerView: StyledPlayerView,
playerView: PlayerView,
) :
Listener, SessionAvailabilityListener {
/** Listener for events. */
Expand All @@ -58,7 +68,7 @@ internal class PlayerManager(
}

private val context: Context
private val playerView: StyledPlayerView
private val playerView: PlayerView
private var localPlayer: Player? = null
private var castPlayer: CastPlayer? = null
private val mediaQueue: ArrayList<MediaItem>
Expand Down Expand Up @@ -249,13 +259,13 @@ internal class PlayerManager(
}

// Player.Listener implementation.
override fun onPlaybackStateChanged(playbackState: @State Int) {
override fun onPlaybackStateChanged(playbackState: @Player.State Int) {
updateCurrentItemIndex()
}

override fun onPositionDiscontinuity(
oldPosition: PositionInfo,
newPosition: PositionInfo,
oldPosition: Player.PositionInfo,
newPosition: Player.PositionInfo,
reason: Int
) {
updateCurrentItemIndex()
Expand Down Expand Up @@ -314,7 +324,7 @@ internal class PlayerManager(
null
)
} else { // currentPlayer == localPlayer
playerView.controllerShowTimeoutMs = StyledPlayerControlView.DEFAULT_SHOW_TIMEOUT_MS
playerView.controllerShowTimeoutMs = PlayerControlView.DEFAULT_SHOW_TIMEOUT_MS
playerView.defaultArtwork = null
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
android:layout_height="match_parent"
tools:context=".PlayerActivity">

<com.google.android.exoplayer2.ui.StyledPlayerView
<androidx.media3.ui.PlayerView
android:id="@+id/exoplayer_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand Down
Binary file modified samples/jetcompose/app/libs/PallyconWVMSDK.aar
Binary file not shown.
Binary file modified samples/simple/app/libs/PallyconWVMSDK.aar
Binary file not shown.
2 changes: 1 addition & 1 deletion samples/simple/app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
android:layout_height="match_parent"
tools:context=".MainActivity">

<com.google.android.exoplayer2.ui.StyledPlayerView
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:focusable="true"
android:layout_width="match_parent"
Expand Down

0 comments on commit 6748649

Please sign in to comment.