java canvas类播放视频教程_使用canvas播放视频

前期规划

将视频隐藏正常播放

将播放取到画面使用setInterval循环在画布上显示画面,因为 1s 差不多25-30帧,选择每40ms循环一次

绘画中的大小,宽度等于100%,高度垂直居中。x 为 0,y 为(canvas.height - video.height)/2/canvas缩放倍数

视频暂停或者播放结束后,清除定时器

代码如下

html代码

';

js代码

function renderCanvas () {

let $canva, ctx, $video, setInter;

$canva =$('#canvas');

$video = $("#main-video");

ctx = $canva[0].getContext('2d');

$canva.style.width = $canva.parents().width() / 2;

$canva.style.height = $canva.parents().height() / 2;

$video[0].play();

render();

setInter = setInterval(r => {

render();

}, 40)

function render () {

ctx.drawImage($video[0], 0, (canvas.height - video.height)/2/2, video.width(), video.height());

}

// 视频播放结束

$video[0].on('ended', function () {

clearInterval(setInter);

});

// 视频被暂停

$video[0].on('pause', function () {

clearInterval(setInter);

});

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java本身不支持直接播放MP4视频文件,但可以使用第三方库来实现。以下是一个使用VLCJ库在Java Swing应用程序中播放MP4视频的示例代码: ```java import java.awt.BorderLayout; import java.awt.Canvas; import javax.swing.JFrame; import javax.swing.JPanel; import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent; import uk.co.caprica.vlcj.discovery.NativeDiscovery; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; public class VideoPlayer extends JFrame { private JPanel contentPane; private Canvas videoSurface; private EmbeddedMediaPlayer mediaPlayer; public VideoPlayer() { new NativeDiscovery().discover(); setTitle("Video Player"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 800, 600); contentPane = new JPanel(); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); videoSurface = new Canvas(); contentPane.add(videoSurface, BorderLayout.CENTER); EmbeddedMediaPlayerComponent mediaPlayerComponent = new EmbeddedMediaPlayerComponent(); mediaPlayer = mediaPlayerComponent.getMediaPlayer(); mediaPlayer.setVideoSurface(mediaPlayerComponent.getVideoSurface()); contentPane.add(mediaPlayerComponent, BorderLayout.CENTER); mediaPlayer.playMedia("video.mp4"); } public static void main(String[] args) { VideoPlayer player = new VideoPlayer(); player.setVisible(true); } } ``` 这个示例代码使用了VLCJ库提供的EmbeddedMediaPlayer组件来播放视频,同时使用了NativeDiscovery来自动查找VLC播放器的安装位置。在这个示例中,视频文件被硬编码为“video.mp4”,你需要将其替换为你自己的视频文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值