当前位置: 首页> 游戏> 游戏 > 网页设计与制作论文6000_泉州建站模板厂家_前端培训班一般多少钱_网站维护的主要内容

网页设计与制作论文6000_泉州建站模板厂家_前端培训班一般多少钱_网站维护的主要内容

时间:2025/7/11 1:27:14来源:https://blog.csdn.net/cf8833/article/details/147022497 浏览次数:1次
网页设计与制作论文6000_泉州建站模板厂家_前端培训班一般多少钱_网站维护的主要内容

说明:
我希望用gstreamer录音,默认10秒,自动保存录音文件到本地
step1:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(CMakeProject1)# 查找 GStreamer
find_package(PkgConfig REQUIRED)
pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0 gstreamer-app-1.0)# 包含目录
include_directories(${GSTREAMER_INCLUDE_DIRS}
)# 链接目录
link_directories(${GSTREAMER_LIBRARY_DIRS}
)add_executable(CMakeProject1 CMakeProject1.cpp)# 链接库
target_link_libraries(CMakeProject1${GSTREAMER_LIBRARIES}
)# C++ 标准设置
set_target_properties(CMakeProject1 PROPERTIESCXX_STANDARD 17CXX_STANDARD_REQUIRED ON
)

step2:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeProject1.cpp

#include <gst/gst.h>
#include <iostream>int main(int argc, char* argv[]) {// 强制设置插件路径(仅 Windows 需要)g_setenv("GST_PLUGIN_PATH", R"(D:\Program Files\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0)", TRUE);// 初始化 GStreamergst_init(&argc, &argv);g_setenv("GST_DEBUG", "4", TRUE);  // 4=WARNING 及以上// 构建录音管道const gchar* pipeline_desc ="autoaudiosrc "                                   // 自动选择音频输入源"! audioconvert "                                 // 音频格式转换"! audioresample "                                // 重采样"! audio/x-raw,format=S16LE,channels=2,rate=44100"// 设置RAW格式"! wavenc "                                      // WAV编码"! filesink location=\"C:/Users/wangrusheng/Desktop/recording.wav\""; // 输出路径GError* error = nullptr;GstElement* pipeline = gst_parse_launch(pipeline_desc, &error);if (error) {std::cerr << "管道创建失败: " << error->message << std::endl;g_clear_error(&error);return -1;}if (!pipeline) {std::cerr << "无法创建录音管道" << std::endl;return -1;}// 启动管道GstStateChangeReturn ret = gst_element_set_state(pipeline, GST_STATE_PLAYING);if (ret == GST_STATE_CHANGE_FAILURE) {std::cerr << "无法启动录音" << std::endl;gst_object_unref(pipeline);return -1;}std::cout << "开始录音(10秒)..." << std::endl;// 等待10秒(单位:微秒)g_usleep(10 * 1000000);// 发送EOS信号结束录音gst_element_send_event(pipeline, gst_event_new_eos());std::cout << "正在保存录音文件..." << std::endl;// 监听总线事件GstBus* bus = gst_element_get_bus(pipeline);GstMessage* msg = gst_bus_timed_pop_filtered(bus,GST_CLOCK_TIME_NONE,static_cast<GstMessageType>(GST_MESSAGE_ERROR | GST_MESSAGE_EOS));// 处理消息if (msg != nullptr) {switch (GST_MESSAGE_TYPE(msg)) {case GST_MESSAGE_ERROR: {GError* err = nullptr;gchar* debug = nullptr;gst_message_parse_error(msg, &err, &debug);std::cerr << "错误: " << err->message << std::endl;if (debug) std::cerr << "调试信息: " << debug << std::endl;g_clear_error(&err);g_free(debug);break;}case GST_MESSAGE_EOS:std::cout << "录音已保存至桌面 recording.wav" << std::endl;break;default:break;}gst_message_unref(msg);}// 清理资源gst_object_unref(bus);gst_element_set_state(pipeline, GST_STATE_NULL);gst_object_unref(pipeline);return 0;
}

end

关键字:网页设计与制作论文6000_泉州建站模板厂家_前端培训班一般多少钱_网站维护的主要内容

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: