当前位置: 首页 > news >正文

岳阳新网网站建设有限公司photoshop官网入口

岳阳新网网站建设有限公司,photoshop官网入口,福州网站建设公司哪家比较好,设计说明500字目标 没有什么比在屏幕上打印出“Hello World”更能获得对软件库的第一印象了#xff01; 但是由于我们正在学习多媒体框架#xff0c;所以我们将输出“Hello World#xff01;”改为播放视频。 不要被下面的代码量吓到#xff1a;只有 4 行是真正需要的#xff0c; 其…目标 没有什么比在屏幕上打印出“Hello World”更能获得对软件库的第一印象了 但是由于我们正在学习多媒体框架所以我们将输出“Hello World”改为播放视频。 不要被下面的代码量吓到只有 4 行是真正需要的 其余的是清理代码在 C语言 中这总是有点冗长。 事不宜迟为您的第一个 GStreamer 应用程序做好准备……。 Hello world 将此代码复制到名为basic-tutorial-1.c的文本文件中或在您的 GStreamer 安装目录中找到它。 basic-tutorial-1.c #include gst/gst.h#ifdef __APPLE__ #include TargetConditionals.h #endifint tutorial_main (int argc, char *argv[]) {GstElement *pipeline;GstBus *bus;GstMessage *msg;/* Initialize GStreamer */gst_init (argc, argv);/* Build the pipeline */pipeline gst_parse_launch(playbin urihttps://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm,NULL);/* Start playing */gst_element_set_state (pipeline, GST_STATE_PLAYING);/* Wait until error or EOS */bus gst_element_get_bus (pipeline);msg gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,GST_MESSAGE_ERROR | GST_MESSAGE_EOS);/* See next tutorial for proper error message handling/parsing */if (GST_MESSAGE_TYPE (msg) GST_MESSAGE_ERROR) {g_error (An error occurred! Re-run with the GST_DEBUG*:WARN environment variable set for more details.);}/* Free resources */gst_message_unref (msg);gst_object_unref (bus);gst_element_set_state (pipeline, GST_STATE_NULL);gst_object_unref (pipeline);return 0; }int main (int argc, char *argv[]) { #if defined(__APPLE__) TARGET_OS_MAC !TARGET_OS_IPHONEreturn gst_macos_main (tutorial_main, argc, argv, NULL); #elsereturn tutorial_main (argc, argv); #endif }按照安装教程中提到的方式编译它如果遇到编译错误请仔细检查给出的错误说明。 如果一切正常启动可执行文件您应该会看到一个弹出窗口其中包含直接从 Internet 播放的视频以及音频。恭喜 需要帮助 如果您需要帮助来编译此代码请参阅针对您的平台构建教程部分Building the tutorialsLinux、Mac OS X 或 Windows或在 Linux 上使用此特定命令 gcc basic-tutorial-1.c -o basic-tutorial-1 pkg-config --cflags --libs gstreamer-1.0 如果您需要帮助来运行此代码请参阅适用于您的平台的运行教程部分Running the tutorialsLinux、Mac OS X 或 Windows。 Required libraries: gstreamer-1.0 本教程将打开一个窗口并显示一个带有音频的电影。 媒体是从 Internet 获取的因此窗口可能需要几秒钟才会出现具体取决于您的连接速度。 此外由于没有延迟管理缓冲因此在连接速度较慢时电影可能会在几秒钟后停止。 查看基础教程Basic tutorial 12: Streaming 如何解决此问题。 Walkthrough 让我们回顾一下这些代码行看看它们做了什么 GstElement *pipeline;GstBus *bus; 这必须始终是您的第一个 GStreamer 命令。除其他事项外gst_init() 初始化所有内部结构 检查可用的插件 执行任何适用于 GStreamer 的命令行选项 如果您始终将命令行参数 argc 和 argv 传递给 gst_init()您的应用程序将自动受益于 GStreamer 标准命令行选项更多信息请参见基础教程 10Basic tutorial 10: GStreamer tools /* Initialize GStreamer */gst_init (argc, argv);/* Build the pipeline */ 这一行是本教程的核心并举例说明两个关键点gst_parse_launch()和 playbin。 gst_parse_launch GStreamer 是一个旨在处理多媒体流的框架。 媒体从“source”元素生产者向下传播到“sink”元素消费者通过一系列执行各种任务的中间元素。 所有互连元素的集合称为“管道”。 在 GStreamer 中您通常通过手动组装各个元素来构建管道但是当管道足够简单并且您不需要任何高级功能时您可以采用快捷方式gst_parse_launch()。 此函数采用管道的文本表示并将其转换为实际管道这非常方便。请参阅基本教程 10Basic tutorial 10: GStreamer tools以了解 gst-launch-1.0和 gst-launch-1.0语法。 playbin 那么我们要求 gst_parse_launch()为我们构建什么样的管道这里进入第二个关键点我们正在构建一个由称为 playbin的单个元素组成的管道。 playbin是一个特殊的element作为source和sink是一个完整的pipeline。在内部它创建并连接所有必要的元素来播放您的媒体因此您不必担心。 它不允许手动管道所具有的粒度控制但是它仍然允许足够的自定义以满足广泛的应用程序。包括本教程。 在本例中我们只向 playbin 传递一个参数即我们要播放的媒体的 URI。尝试将其更改为其他内容无论是 http:// 还是 file:// URIplaybin 都会透明地实例化合适的 GStreamer source 如果您输入错误的 URI或者文件不存在或者您缺少插件GStreamer 提供了几种通知机制但我们在这个例子中唯一做的就是出错退出所以不要期待太多反馈。 gst_parse_launch(playbin urihttps://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm,这行突出了另一个有趣的概念状态。每个 GStreamer 元素都有一个相关联的状态您可以或多或少地将其视为常规 DVD 播放器中的播放/暂停按钮。就目前而言除非您将管道设置为 PLAYING 状态否则播放不会开始就足够了。 在这一行中gst_element_set_state() 将管道我们唯一的元素记住设置为 PLAYING 状态从而启动播放。 /* Start playing */gst_element_set_state (pipeline, GST_STATE_PLAYING);/* Wait until error or EOS */ 这些行将等待直到发生错误或找到流的末尾。gst_element_get_bus() 检索管道的总线而 gst_bus_timed_pop_filtered() 将阻塞直到您通过该总线收到 ERROR 或 EOS流结束。不要太担心行GStreamer 总线在基础教程 2Basic tutorial 2: GStreamer concepts中有解释。 就是这样从这一点开始GStreamer 会处理一切。当媒体到达终点EOS或遇到错误尝试关闭视频窗口或拔掉网线时执行将结束。始终可以通过在控制台中按 control-C 来停止应用程序。 Cleanup 在终止应用程序之前我们需要做一些事情来正确地整理自己。 msg gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,GST_MESSAGE_ERROR | GST_MESSAGE_EOS);/* See next tutorial for proper error message handling/parsing */if (GST_MESSAGE_TYPE (msg) GST_MESSAGE_ERROR) {始终阅读您使用的函数文档以了解您是否应该释放它们在使用后返回的对象。 在这种情况下gst_bus_timed_pop_filtered() 返回一条消息需要使用 gst_message_unref() 释放该消息有关消息的更多信息请参见基础教程 2Basic tutorial 2: GStreamer concepts。 gst_element_get_bus() 添加了对必须使用 gst_object_unref() 释放的总线的引用。将管道设置为 NULL 状态将确保它释放已分配的所有资源更多关于基础教程 3动态管道中的状态。Finally, unreferencing the pipeline will destroy it, and all its contents. 总结 您的第一个 GStreamer 教程到此结束。希望它的简洁性可以作为该框架强大功能的一个例子 让我们回顾一下。我们学习内容 如何使用 gst_init() 初始化 GStreamer。 如何使用 gst_parse_launch() 从文本描述快速构建管道。 如何使用 playbin 创建自动播放管道。 如何使用 gst_element_set_state() 向 GStreamer 发出信号以开始播放。 如何高枕无忧而 GStreamer 使用 gst_element_get_bus() 和 gst_bus_timed_pop_filtered() 处理一切。
http://www.sczhlp.com/news/185093/

相关文章:

  • 建站公司哪家做出来的网站好网站需求分析报告范文
  • wordpress猫咪主题南宁网站建设seo
  • 个人如何做一个网站网站域名怎么快速备案
  • 外贸的网站有哪些农业网站模板
  • 个人购买域名做企业网站携程: 2023年旅行搜索上涨超900%
  • 2025蒸发式冷气机厂家最新推荐榜:高效制冷与节能优势优质之
  • List之高效安全的 Java 列表深复制工具:ListCopyUtils 的设计与实践
  • AMD、CMD、UMD、ESM和CommonJS
  • 2025异型钢厂家最新推荐榜:定制化生产与卓越品质引领者
  • linux硬盘在线热扩容非LVM情况
  • 罗庄区住房和城乡建设局网站wordpress菜单小图标
  • 做废钢推广网站wordpress多站点统计
  • 青岛模版网站建设网站建设费用价格
  • 手机版网站建设合同自己做网站花钱么
  • 网站建设公司怎么找客户网站建设额
  • 中国小康建设网站网站流量数据查询
  • 长沙大的建网站公司网站建设特定开发
  • 网站案例展示分类服装网站建设优点有哪些
  • 建设集团网站 技术支持中企动力网站建设手机网站
  • dw制作个人网站的具体步骤广州市企业网站建设平台
  • 备案通过后 添加网站买外链有用吗
  • php 购物网站开发oa系统排名
  • m开头的手机网站怎么做辽宁省品牌建设的建议
  • 怎么才能成功做网站新闻聚合网站怎么做
  • 网站目录管理系统模板做画册封面的网站
  • 查询网网站wordpress 编辑插件下载
  • 网站管理后台地址怎么查询服务器 网站建设
  • 好网站的标准wordpress换网址图片打不开
  • 广州网站建设好评公司做网站是什么专业
  • 网站访问量手机app定制开发公司