diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index e131861..88ae0f8 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -30,9 +30,9 @@ jobs: run: ./gradlew :gdx-video-desktop:FFmpeg:buildFFmpegMacosAll :gdx-video-desktop:jnigenBuildMacosAll - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: desktop-natives + name: natives-macos path: gdx-video-desktop/libs/**/*.dylib if-no-files-found: error @@ -65,9 +65,9 @@ jobs: run: ./gradlew :gdx-video-desktop:FFmpeg:buildFFmpegLinuxAll :gdx-video-desktop:jnigenBuildLinuxAll - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: desktop-natives + name: natives-linux path: gdx-video-desktop/libs/**/*.so if-no-files-found: error @@ -98,9 +98,9 @@ jobs: run: ./gradlew :gdx-video-desktop:FFmpeg:buildFFmpegWindowsAll :gdx-video-desktop:jnigenBuildWindowsAll - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: desktop-natives + name: natives-windows path: gdx-video-desktop/libs/**/*.dll if-no-files-found: error @@ -128,11 +128,12 @@ jobs: - name: Setup Gradle uses: gradle/gradle-build-action@v2 - - name: Download desktop-natives artifact - uses: actions/download-artifact@v3 + - name: Download individual natives artifacts + uses: actions/download-artifact@v4 with: - name: desktop-natives + pattern: natives-* path: gdx-video-desktop/libs + merge-multiple: true - name: Create JAR with natives for desktop run: ./gradlew jnigenJarNativesDesktop --info @@ -148,7 +149,7 @@ jobs: - name: Upload all output libs if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: output-libs path: '**/build/libs/' diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml index 8fe2750..2a6862f 100644 --- a/.github/workflows/publish_snapshot.yml +++ b/.github/workflows/publish_snapshot.yml @@ -36,9 +36,9 @@ jobs: run: ./gradlew :gdx-video-desktop:FFmpeg:buildFFmpegMacosAll :gdx-video-desktop:jnigenBuildMacosAll - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: desktop-natives + name: natives-macos path: gdx-video-desktop/libs/**/*.dylib if-no-files-found: error @@ -71,9 +71,9 @@ jobs: run: ./gradlew :gdx-video-desktop:FFmpeg:buildFFmpegLinuxAll :gdx-video-desktop:jnigenBuildLinuxAll - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: desktop-natives + name: natives-linux path: gdx-video-desktop/libs/**/*.so if-no-files-found: error @@ -104,9 +104,9 @@ jobs: run: ./gradlew :gdx-video-desktop:FFmpeg:buildFFmpegWindowsAll :gdx-video-desktop:jnigenBuildWindowsAll - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: desktop-natives + name: natives-windows path: gdx-video-desktop/libs/**/*.dll if-no-files-found: error @@ -134,11 +134,12 @@ jobs: - name: Setup Gradle uses: gradle/gradle-build-action@v2 - - name: Download desktop-natives artifact - uses: actions/download-artifact@v3 + - name: Download individual natives artifacts + uses: actions/download-artifact@v4 with: - name: desktop-natives + pattern: natives-* path: gdx-video-desktop/libs + merge-multiple: true - name: Create JAR with natives for desktop run: ./gradlew jnigenJarNativesDesktop --info diff --git a/gdx-video-android/src/com/badlogic/gdx/video/VideoPlayerAndroid.java b/gdx-video-android/src/com/badlogic/gdx/video/VideoPlayerAndroid.java index ea22774..a99ffa4 100644 --- a/gdx-video-android/src/com/badlogic/gdx/video/VideoPlayerAndroid.java +++ b/gdx-video-android/src/com/badlogic/gdx/video/VideoPlayerAndroid.java @@ -122,6 +122,8 @@ public void run () { VideoSizeListener sizeListener; CompletionListener completionListener; + + private boolean currentLooping = false; private float currentVolume = 1.0f; /** Used for sending mediaplayer tasks to the Main Looper */ @@ -182,6 +184,8 @@ public void run () { fbo = new FrameBuffer(Pixmap.Format.RGB888, player.getVideoWidth(), player.getVideoHeight(), false); } prepared = true; + player.setVolume(currentVolume, currentVolume); + player.setLooping(currentLooping); if (playRequested) { player.start(); } @@ -299,7 +303,7 @@ public boolean isBuffered () { @Override public void stop () { - if (player != null && player.isPlaying()) { + if (player != null && isPlaying()) { player.stop(); player.reset(); } @@ -315,7 +319,7 @@ public void onFrameAvailable (SurfaceTexture surfaceTexture) { @Override public void pause () { // If it is running - if (prepared) { + if (isPlaying()) { player.pause(); } playRequested = false; @@ -364,23 +368,34 @@ public void setOnCompletionListener (CompletionListener listener) { @Override public int getVideoWidth () { + if (!prepared) { + return 0; + } return player.getVideoWidth(); } @Override public int getVideoHeight () { + if (!prepared) { + return 0; + } return player.getVideoHeight(); } @Override public boolean isPlaying () { + if (!prepared) { + return false; + } return player.isPlaying(); } @Override public void setVolume (float volume) { currentVolume = volume; - player.setVolume(volume, volume); + if (prepared) { + player.setVolume(volume, volume); + } } @Override @@ -390,16 +405,22 @@ public float getVolume () { @Override public void setLooping (boolean looping) { - player.setLooping(looping); + currentLooping = looping; + if (prepared) { + player.setLooping(looping); + } } @Override public boolean isLooping () { - return player.isLooping(); + return currentLooping; } @Override public int getCurrentTimestamp () { + if (!prepared) { + return 0; + } return player.getCurrentPosition(); } }