From fd0e5c46a8ab71058cb58c572c77326fb26bc4a7 Mon Sep 17 00:00:00 2001 From: shogo4405 Date: Thu, 28 Dec 2023 16:51:52 +0900 Subject: [PATCH 1/2] targetSdkVersion 34 --- app/build.gradle | 4 ++-- haishinkit/build.gradle | 6 +++--- vulkan/build.gradle | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f2ac42778..769fb7d53 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { - compileSdkVersion 33 + compileSdk 34 compileOptions { sourceCompatibility JavaVersion.VERSION_17 @@ -17,7 +17,7 @@ android { defaultConfig { applicationId "com.haishinkit.app" minSdkVersion 21 - targetSdkVersion 33 + targetSdkVersion 34 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/haishinkit/build.gradle b/haishinkit/build.gradle index 27775d20e..15f27c193 100644 --- a/haishinkit/build.gradle +++ b/haishinkit/build.gradle @@ -2,17 +2,17 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'org.jetbrains.dokka' -task sourceJar(type: Jar) { +tasks.register('sourceJar', Jar) { from android.sourceSets.main.java.srcDirs archiveClassifier.set("sources") } android { namespace 'com.haishinkit' - compileSdkVersion 33 + compileSdk 34 defaultConfig { minSdkVersion 21 - targetSdkVersion 33 + targetSdkVersion 34 buildConfigField "String", "VERSION_NAME", "\"${rootProject.ext.version_name}\"" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } diff --git a/vulkan/build.gradle b/vulkan/build.gradle index b66ac8e20..4041d3180 100644 --- a/vulkan/build.gradle +++ b/vulkan/build.gradle @@ -4,11 +4,11 @@ apply plugin: 'org.jetbrains.dokka' android { namespace 'com.haishinkit.vulkan' - compileSdkVersion 33 + compileSdk 34 defaultConfig { minSdkVersion 26 - targetSdkVersion 33 + targetSdkVersion 34 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" From f30b379189852f1f213baea20ed727943ed559ce Mon Sep 17 00:00:00 2001 From: shogo4405 Date: Tue, 2 Jan 2024 19:37:59 +0900 Subject: [PATCH 2/2] Bump to Android SDK up 34. --- .../java/com/haishinkit/app/Preference.kt | 2 +- .../haishinkit/media/MediaProjectionSource.kt | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/haishinkit/app/Preference.kt b/app/src/main/java/com/haishinkit/app/Preference.kt index b723f6ef7..9f608f0d7 100644 --- a/app/src/main/java/com/haishinkit/app/Preference.kt +++ b/app/src/main/java/com/haishinkit/app/Preference.kt @@ -3,7 +3,7 @@ package com.haishinkit.app data class Preference(var rtmpURL: String, var streamName: String) { companion object { var shared = Preference( - "rtmp://test:test@192.168.1.9/live", + "rtmp://test:test@192.168.1.3/live", "live" ) diff --git a/haishinkit/src/main/java/com/haishinkit/media/MediaProjectionSource.kt b/haishinkit/src/main/java/com/haishinkit/media/MediaProjectionSource.kt index f796c615d..d7aeca35e 100644 --- a/haishinkit/src/main/java/com/haishinkit/media/MediaProjectionSource.kt +++ b/haishinkit/src/main/java/com/haishinkit/media/MediaProjectionSource.kt @@ -30,6 +30,24 @@ class MediaProjectionSource( override var utilizable: Boolean = false ) : VideoSource { + + private class Callback : MediaProjection.Callback() { + override fun onCapturedContentVisibilityChanged(isVisible: Boolean) { + super.onCapturedContentVisibilityChanged(isVisible) + Log.d(TAG, "Callback#onCapturedContentVisibilityChanged") + } + + override fun onCapturedContentResize(width: Int, height: Int) { + super.onCapturedContentResize(width, height) + Log.d(TAG, "Callback#onCapturedContentResize") + } + + override fun onStop() { + super.onStop() + Log.d(TAG, "Callback#onStop") + } + } + /** * Specifies scale that defines a transformation that resizes an image. */ @@ -124,6 +142,8 @@ class MediaProjectionSource( @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.P) private var isAvailableRotatesWithContentFlag = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P + private val callback: Callback by lazy { Callback() } + override fun setUp() { if (utilizable) return val windowManager = @@ -132,6 +152,8 @@ class MediaProjectionSource( if (isRotatesWithContent) { orientationEventListener?.enable() } + // Android 14 must register an callback. + mediaProjection.registerCallback(callback, null) rotation = windowManager.defaultDisplay.rotation resolution = Size((metrics.widthPixels * scale).toInt(), (metrics.heightPixels * scale).toInt()) @@ -143,6 +165,7 @@ class MediaProjectionSource( if (isRotatesWithContent) { orientationEventListener?.disable() } + mediaProjection.unregisterCallback(callback) mediaProjection.stop() super.tearDown() } @@ -167,6 +190,7 @@ class MediaProjectionSource( /** * Register a listener to receive notifications about when the MediaProjection changes state. */ + @Suppress("UNUSED") fun registerCallback(callback: MediaProjection.Callback, handler: Handler?) { mediaProjection.registerCallback(callback, handler) } @@ -174,6 +198,7 @@ class MediaProjectionSource( /** * Unregister a MediaProjection listener. */ + @Suppress("UNUSED") fun unregisterCallback(callback: MediaProjection.Callback) { mediaProjection.unregisterCallback(callback) }