LinkLib例子之十五:本地文件回放,支持暂停,seek等
本地文件回放例子
- 简介
- 准备工作
- 运行结果
- 源代码
- 参考模块
简介
该示例程序演示了如何进行本地文件的回放,以及seek、pause等操作;LinkLib API
的seek操作可以精确到毫秒级的。
建议先运行Record程序,生成一段可用的test.mp4
准备工作
- 参照用户手册搭建开发环境、编译3531D工程、配置网络启动参数。
- 将评估板的HDMI-OUT接显示器(支持1080P即可,程序默认输出1080P60)。
- 上电,进入
/root/demo
目录 - 运行Player程序
- 空格+回车:暂停/播放
- ← + 回车:后退5秒
- → + 回车:前进5秒
- a + 回车:定位到5.5s处
运行结果
源代码
完整的工程参见:https://gitee.com/LinkPi/3531D/tree/master/Player
//main.cpp
#include <QCoreApplication>
#include "Link.h"
#include <stdio.h>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);Link::init();LinkObject *vo=Link::create("OutputVo");QVariantMap dataVo;dataVo["type"]="hdmi";vo->start(dataVo);LinkObject *file=Link::create("InputFile");QVariantMap dataFile;dataFile["path"]="test.mp4";file->start(dataFile);LinkObject *dec=Link::create("DecodeV");dec->start();file->linkV(dec)->linkV(vo);QObject::connect(file,&LinkObject::newEvent,[=](QString type,QVariant){if(type=="EOF"){exit(0);}});bool pause=false;while(true){int key=getchar();if(key==32)//space{pause=!pause;file->invoke("pause",pause);}else if(key==68)//left{int cur=file->invoke("getPosition").toInt();qDebug()<<cur;cur-=5000;file->invoke("seek",cur);}else if(key==67)//right{int cur=file->invoke("getPosition").toInt();cur+=5000;file->invoke("seek",cur);}else if(key==97)//a{file->invoke("seek",5500);}}return a.exec();
}
参考模块
InputFile
DecodeV
OutputVo
LinkLib例子之十五:本地文件回放,支持暂停,seek等相关推荐
- Python编程基础:第三十五节 文件删除Delete a File
第三十五节 文件删除Delete a File 前言 实践 前言 我们这一节来介绍如何删除一个文件,这里需要用到函数os.remove(path)用于删除指定路径下的文件,os.rmdir(path) ...
- Objective-C学习笔记第十五章文件加载与保存
第十五章文件加载与保存 Cocoa提供了Core Data,他能在后台处理所有文件内容 Cocoa提供了两个通用的文件处理类:属性列表和对象编码 一.属性列表类 在Cocoa中,有一类名为属性列表的对 ...
- C语言学习第十五课(文件操作)
第十五课 1,文件的概念 文件一般指存储在外部介质(如磁盘磁带)上的集合: 2,流的概念 ·操作系统是以文件为单位对数据进行管理的,输入输出是数据传送的过程,数据如流水一般从一处流向另一处,因此将输入 ...
- MonoRail学习笔记十五:文件上传
在MonoRail中文件上传很简单,使用智能绑定方式后直接用HttpPostedFile类就可以进行操作了 vm文件: 1<h1 align="center">Uplo ...
- golang基础教程(十五)文件操作
golang基础教程 一.文件的基本介绍 文件的概念 文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的 word 文档,txt 文 件,excel 文件-都是文件.文件最 ...
- 操作系统知识点总结(十五)文件层次结构,目录实现和文件实现
(一)文件层次结构 现代操作系统有多种文件系统类型(如FAT32.NTFS. ext2.ext3.ext4等),因此文件系统的层次结构也不尽相同.图4-11是一种合理的层次结构. 图4-11文件系统层 ...
- Android系统10 RK3399 init进程启动(三十五) 属性文件介绍和生成过程
配套系列教学视频链接: 安卓系列教程之ROM系统开发-百问100ask 说明 系统:Android10.0 设备: FireFly RK3399 (ROC-RK3399-PC-PLUS) 前言 ini ...
- LinkLib例子之十:Hi3531D UI,触屏界面开发
Hi3531D UI,触屏界面开发 UI 准备工作 运行结果 源程序 UI 该示例程序在Mix程序的基础上,增加了UI界面. 程序中将一个QWidget的背景进行透明处理,并显示了一个按钮,用户可以在 ...
- 深入研究Clang(十五) Clang的RISCV支持1
一.Clang/LLVM对RISCV的支持概况 目前已经有一系列的C类编译器和库开始支持RISCV,这其中包括了GCC和Clang/LLVM.从RISCV的官方网站,可以获取目前的支持状态.具体内容如 ...
- JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!
JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...
最新文章
- EasyPHP-2.0b1+ Mantis-1.1.0安装及技巧
- 框架SpringMVC笔记系列 二 传值
- SQL语言学习(五)流程控制函数学习
- PHP-代码审计-审计第一步
- 03、MySQL—数据表操作
- Linux 内核调试器 调试指南
- “基因编辑婴儿”惹争议,那你知道机器学习在脱靶效应中的作用吗?
- java特定用户登录_求教!!!用 jsp+servlet 怎样控制指定用户名登录页面啊!
- ret2dir:Rethinking Kernel Isolation(翻译)
- 计算机二级java和c哪个难,计算机二级最好考哪个 考试难度怎么样
- 使用qBittorrent下载bt种子文件
- Hbase数据库设计
- ExtJS初学——renderTo/applyTo区别
- 腾讯云弹性MapReduce
- 计算机在机械工程中的应用英语作文,关于机械工程英语作文
- JS禁止右键、CTRL+C、查看源文件
- 网站投票系统制作与流程
- xcode9 IphoneX 调试
- 微信小程序聊天功能 WebSocket 实现发送文字,图片,语音以及WebSocket 常见问题解决方案
- Redmi K30 Pro 标准版更换相机后魔改为变焦版过程
热门文章
- windows11百度网盘下载,win11iso镜像百度云下载
- 人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
- Flutter:视频全屏切换
- 远程升级单片机程序设计思路
- 电芯容量在前期循环中容量增加_关于锂离子电池使用性能的那些事---容量“跳水”...
- 八数码问题c语言,启发式搜索算法解决八数码问题(C语言)
- python合并多个excel工作簿_python多个excel文件合并成一个sheet
- 基于C++实现的一种通用Base编解码器(Hex(Base16)/Base32/Base64)
- matlab中划分训练集和测试集
- 博士毕业要发多少篇文章? 72 所高校大比较,发文最多的是……