学习
实践
活动
专区
工具
TVP
写文章

11.QT-ffmpeg+QAudioOutput实现音频播放

1.前言 由于QAudioOutput支持的输入数据必须是原始数据,所以播放mp3,WAV,AAC等格式文件,需要解封装后才能支持播放. 所以接下来,我们使用ffmpeg+QAudioOutput来实现一个简单的音频播放器. 2.界面展示 因为业余爱好,只是简单实现了大部分功能,支持播放、暂停、恢复、换歌、播放进度调节,如下图所示: ? 4.代码流程 首先创建一个playthread线程类,然后在线程中,不断解数据,重采样,并输入到QAudioOutput的缓冲区进行播放.以及处理界面发来的命令 然后创建一个Widget界面类,通过用户操作 4.1 playthread线程类 在playthread线程类中,最核心的函数是runPlay(),该函数就是在不断的不断解数据,重采样,并输入到QAudioOutput的缓冲区进行播放. playtherad.cpp } audio = new QAudioOutput(format, this); audio->setBufferSize(100000); return true; }

1.2K20
  • 广告
    关闭

    1元体验视频云点播

    11.11云上盛惠,云点播流量包首购0.01元起,新老同享点播流量包0.08元/GB起,更有点播存储包/点播转码包/点播审核时长包/闲时流量包等7.4折起础版 使用权+1年视频播放 License 使用权

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用Python播放和录制声音

    下面是一些可以播放和录制音频的Python第三方库: playsound,支持MP3和WAV,目前只支持简单的回放。 simpleaudio,支持WAV,提供检查文件是否仍在播放的功能。 pydub,需要pyaudio来播放音频,但是安装了ffmpeg之后,它允许您使用几行代码来播放各种音频格式。 play_obj.wait_done() # Wait until sound has finished playing 使用winsound库 如果您使用Windows,您可以使用内置的winsound模块来访问其基本的声音播放机制 stream.write(data) data = wf.readframes(chunk) stream.close() p.terminate() 您可能已经注意到,使用pyaudio播放声音比使用前面看到的库播放声音要复杂一些 这意味着如果您只想在Python应用程序中播放声音效果,那么它可能不是您的首选。

    4.4K30

    Qt音视频开发25-ffmpeg音量设置

    限定了win7,而xp确没有,而且这玩意控制的是全局的音量,不好,大部分时候需要控制的是当前播放的媒体的音量,估计vlc和mpv这类播放器在处理声音的时候也有过如此的场景分析,后面还测试过用ffmpeg 的filter滤镜代码控制音频数据的分贝值,比较繁琐,代码量也大,不方便初学者学习,最后灵机一动去找QAudioOutput的函数看下有没有volume的函数,果真有卧槽,原来自带了,对Qt的爱慕之情又猛增了几十分 ,这里要注意的是QAudioOutput的音量值参数是0-1的范围double类型,而不是像vlc等播放器是0-100的值,所以需要自行转换。 二、功能特点 多线程实时播放视频流+本地视频+USB摄像头等。 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。 多线程显示图像,卡主界面。 可直接拖曳文件到ffmpegwidget控件播放。 支持h265视频流+rtmp等常见视频流。 可暂停播放和继续播放。 支持存储单个视频文件和定时存储视频文件。

    57930

    能用 CSS 能播放声音吗?

    建议在生产中使用它,因为音频可能还会被

    74640

    声如其闻,DuerOS中的声音播放

    智能语音设备的特点是语音交互成为人机交互的重要方式,智能语音设备的声音输出摆脱了预置的逻辑,成为了响应式反馈,尤其是对声音输入的响应。 那么, 技能是在智能语音设备上如何播放声音的呢? 在DuerOS 中,主要提供了三种声音播放方式:音视频媒体播放,TTS 合成的语音播放 和利用TTS合成的媒体及文本混合播放。 ? 音视频媒体播放是技能播放声音的重要方法,在非资源类技能中也有着广泛的应用。 ? 小结 声音播放是智能语音设备的基础能力,直接播放音视频资源是一种直接的声音播放方式,面向动态文本内容的声音播放一般采用TTS合成的方式实现。 家中的孩童能否在“小度系列产品”上听到爸爸声音讲的故事呢?一系列与声音播放相关的新功能特性已经在路上了,DuerOS,值得期待! ?

    67731

    WPF中播放声音媒体文件

    由於对之前从未使用过WPF,所以对其中的声音等媒体文件播放不是很清楚,对一些简单的问题也花了相对较长的时间去解决,现在将其总结在下麵,以供大家参考。 1,使用SoundPlayer类 SoundPlayer类位於System.Media命名空间下,它只能播放.wav格式的声音文件。 除了上面提到的文件格式限制外,这个类还有个缺陷,就是你只能同时播放一个声音文件,即便你实例化几个不同的类,在我的程序中最初考虑一个背景音乐文件一直循环播放,可是当我把光标放置於另外一个我自己定制的UserControl 上,会播放一个声音,而之前的背景音乐就会消失,於是我不得不用其它的方法。 siteoforigin:,,,/Sounds/test.mp3" 这裡的路径表示方法,亦可以直接在Code-behind中直接设置: 我们可以发现,通过MediaPlayer可以解决文件格式限制问题,还可以解决不能同时播放几个声音的问题

    1.1K60

    Qt音视频开发7-ffmpeg音频播放

    一、前言 之前用ffmpeg解码出来了音频,只是做了存储部分,比如存储成aac文件,播放的话早期用的是sdl来播放音频,自从Qt5以后提供了QAudioOutput播放输入的音频数据,就更加方便了,可以直接将解码好的音频数据写入就能播放播放,这对于很多初学者来说,是个很好的消息,完美。 音频播放大致的流程如下: 初始化格式QAudioFormat,设置对应的属性。 初始化一个QAudioOutput音频播放对象。 将QAudioOutput启动后的播放设备交给QIODevice。 二、功能特点 多线程实时播放视频流+本地视频+USB摄像头等。 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。 多线程显示图像,卡主界面。 可直接拖曳文件到ffmpegwidget控件播放。 支持h265视频流+rtmp等常见视频流。 可暂停播放和继续播放。 支持存储单个视频文件和定时存储视频文件。

    79420

    Qt音视频开发26-ffmpeg播放

    一、前言 用ffmpeg来实现自己的播放器,这是一直以来的一个目标,之前的难点卡在音视频同步以及如何播放声音这两点(尽管之前已经进行过不少的尝试和探索,但是问题还是挺多,比如音视频同步不完美,有些文件正常而有些文件不准 ,声音播放采用的sdl总感觉多了个依赖怪怪的,而且很多初学者也反映希望采用Qt自身的类来播放),近期正好把这两个难点一一攻破了,音视频同步采用的外部时钟同步,声音播放采用的Qt自带的QAudioOutput 最简单基本播放器具备的功能: 播放、关闭、暂停、继续。 音量调节、静音设置。 进度调节、定位播放。 总时长、已播放时长。 音频、视频、本地文件、视频流。 二、功能特点 多线程实时播放视频流+本地视频+USB摄像头等。 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。 多线程显示图像,卡主界面。 可直接拖曳文件到ffmpegwidget控件播放。 支持h265视频流+rtmp等常见视频流。 可暂停播放和继续播放。 支持存储单个视频文件和定时存储视频文件。

    98400

    GapWorker导致RecyclerView视频播放声音残留问题

    切到FragmentA 视频播放(在RecyclerViewA 内部),然后切到FragmentB 视频暂停. 就在此刻,滑动FragmentB 的recyclerView B ,来自FragmentA的视频播放声音,而且声音是下一条视频的声音。 这确实是一个非常奇怪的问题,滑动不会出现视频播放声音,必须滑动一下才能出现声音。 解决思路 1.分析日志,查找播放业务相关的代码 2.增加logStackTrace(“xxx”)用来打印出调用的栈信息 辅助方法 该方法用来查看调用的层级关系,实现原理很简单,就是生成一个Throwable 这种对于普通的RecyclerView的item没有问题,但是对于视频有声音的,就显得问题明显了。所以这里的解决方法就是关闭这个预取的设置。 以上。

    83620

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 声音工坊

      声音工坊

      声音工坊( TTSW )提供定制音色的能力,满足客户定制化需求。通过先进的深度学习技术,根据客户实际业务情况,提供不同的定制方案,从而更有效、更专业地服务实际业务需求。普遍适用于智能客服、智能硬件、在线教育、有声阅读、新闻播报等场景,通过训练专属业务音色,从而更好的服务业务场景,提升交互体验。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券