libgdx播放视频、libgdx播放MP4、libgdx播放动画(二十二)

libgdx播放视频、libgdx播放MP4、libgdx播放动画

转自:https://lingkang.top/archives/libgdx-bo-fang-shi-pin
转自:https://lingkang.top/archives/libgdx-bo-fang-shi-pin
转自:https://lingkang.top/archives/libgdx-bo-fang-shi-pin

最近《完蛋!我被美女包围了!》比较火,它基于视频交互进行游戏。于是有了这篇文章。

libgdx实现视频播放,是对视频进行帧拆解,通过渲染更新到画面上。

当前最新版本的库:2023年11月14日
使用的库,这是一个快照版。说明libgdx目前还未发版,说明还不够完善。


<dependency>
    <groupId>com.badlogicgames.gdx-videogroupId>
    <artifactId>gdx-video-lwjgl3artifactId>
    <version>1.3.2-SNAPSHOTversion>
dependency>

需要加入快照仓库

<repository>
    <id>nexus1id>
    <name>Nexus1name>
    <layout>defaultlayout>
    <url>https://oss.sonatype.org/content/repositories/snapshotsurl>
    <snapshots>
        <enabled>trueenabled>
    snapshots>
    <releases>
        <enabled>falseenabled>
    releases>
repository>

可以在此处浏览
https://oss.sonatype.org/content/repositories/snapshots/com/badlogicgames/gdx-video/
不同环境的格式注意
libgdx播放视频、libgdx播放MP4、libgdx播放动画(二十二)_第1张图片

libgdx播放视频、libgdx播放MP4、libgdx播放动画(二十二)_第2张图片
在window中,如果没有webM格式视频,百度一个在线转换器:
mp4转webm在线转换器

package video;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.video.VideoPlayer;
import com.badlogic.gdx.video.VideoPlayerCreator;
import org.junit.Test;

import java.io.FileNotFoundException;

/**
 * @author lingkang
 * created by 2023/11/14
 */
public class MyVideo extends ApplicationAdapter {
    @Test
    public void test() {
        Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
        config.setForegroundFPS(30);
        config.setTitle("yzcy");
        config.setWindowedMode(800, 600);
        new Lwjgl3Application(this, config);
    }

    VideoPlayer player;
    protected SpriteBatch batch;

    @Override
    public void create() {
        player = VideoPlayerCreator.createVideoPlayer();
        FileHandle file = Gdx.files.absolute("C:\\Users\\Administrator\\Desktop\\video.webm");
        try {
            player.play(file);
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
        System.out.println("加载完成");
        batch=new SpriteBatch();
    }

    @Override
    public void render() {
        player.update();
        batch.begin();
        batch.draw(player.getTexture(),0,0);
        batch.end();
    }

    @Override
    public void dispose() {
        player.dispose();
    }
}

效果
libgdx播放视频、libgdx播放MP4、libgdx播放动画(二十二)_第3张图片

libgdx播放视频、libgdx播放MP4、libgdx播放动画(二十二)_第4张图片
libgdx播放视频、libgdx播放MP4、libgdx播放动画(二十二)_第5张图片

完整依赖


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>top.lingkanggroupId>
    <artifactId>yzcyartifactId>
    <packaging>jarpackaging>
    <version>1.0.0version>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <gdx.version>1.12.0gdx.version>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdxartifactId>
            <version>${gdx.version}version>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-backend-lwjgl3artifactId>
            <version>${gdx.version}version>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-platformartifactId>
            <version>${gdx.version}version>
            <classifier>natives-desktopclassifier>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-freetypeartifactId>
            <version>${gdx.version}version>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-freetype-platformartifactId>
            <version>${gdx.version}version>
            <classifier>natives-desktopclassifier>
        dependency>

        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.13.2version>
        dependency>

        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>2.0.9version>
        dependency>
        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-simpleartifactId>
            <version>2.0.9version>
        dependency>
        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>1.18.30version>
            <scope>providedscope>
        dependency>

        
        <dependency>
            <groupId>com.badlogicgames.gdx-videogroupId>
            <artifactId>gdx-video-lwjgl3artifactId>
            <version>1.3.2-SNAPSHOTversion>
        dependency>
    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.8.1version>
                <configuration>
                    <source>17source>
                    <target>17target>
                    
                    
                configuration>
            plugin>
        plugins>
    build>

    <repositories>
        <repository>
            <id>tencentid>
            <name>tencentname>
            <layout>defaultlayout>
            <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/url>
            <snapshots>
                <enabled>falseenabled>
            snapshots>
            <releases>
                <enabled>trueenabled>
            releases>
        repository>
        <repository>
            <id>nexus1id>
            <name>Nexus1name>
            <layout>defaultlayout>
            <url>https://oss.sonatype.org/content/repositories/snapshotsurl>
            <snapshots>
                <enabled>trueenabled>
            snapshots>
            <releases>
                <enabled>falseenabled>
            releases>
        repository>
        <repository>
            <id>nexusid>
            <name>Nexusname>
            <layout>defaultlayout>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshotsurl>
            <snapshots>
                <enabled>trueenabled>
            snapshots>
            <releases>
                <enabled>falseenabled>
            releases>
        repository>
        <repository>
            <id>aliyunmavenid>
            <url>https://maven.aliyun.com/repository/publicurl>
            <releases>
                <enabled>trueenabled>
            releases>
            <snapshots>
                <enabled>falseenabled>
            snapshots>
        repository>
    repositories>
project>

你可能感兴趣的:(java,libgdx,游戏开发,java,libgdx,音视频,libgdx播放视频)