个人资料

跳过导航链接首页 > 博客列表 > 博客正文

一图理解UWP提供的音频api:AudioGraph

:

    虽然audioGraph更强大,但如只需要播放音频,那么直接使用MediaPlayer对象即可。因为AudioGraph在uwp中平台使用目前有2个缺点(如果单纯的播放):


    1.不集成进度条,播放控制等


    进度条需要自己写slider,后台轮询播放进度,前台拖动进度,播放暂停等和后台交互等都需要手动编写实现。


    2.无法后台播放


    只说桌面的情况(手机平板没测试过),最小化播放程式(UWP会进入后台😓)播放也会停止。如果用MediaPlayer自动集成SMTC后台播放,不需要写额外的代码。如果要实现后台播放,需要自己编写后台任务,并使用BackgroundPlayer类(UWP传统后台播放媒体),目前BackgroundPlayer类已被弃用,据说未来设备可能不支持,但目前仍然可用。

备注:BackgroundPlayer只用来前后台通讯,控制AudioGraph后台播放即可,也不必实现STMC集成

更新:可通过运行时组件建立自定义事件与前台交互完成播放任务而不使用BackgroundPlayer类,参考

参考:

https://stackoverflow.com/questions/39098081/how-to-play-audio-in-background-using-audiograph-api

https://github.com/Myfreedom614/UWP-Samples/tree/master/AudioGraphBackgroundPlayback    

    为什么用AudioGraph而不用MediaPlayer


    1.可以实现音频图


    2.自定义播放效果


    3.麦克风录制到文件


    4.自定义编辑音频数据

    

    等等等等....

----------------------------------------------



    AudioGraph都是以节点Node的方式进行连接,这样每个节点都是可以任意连接的,比如可以一个输入节点可以连接到多个输出节点,一个输出也可以有多个输入。图中绿色的连接就是典型的音乐播放,蓝色是音乐录制。使用AudioGraph生成各种节点,然后连接节点就可以实现对应的功能。


    其中效果Effect不是节点,是用来给每一帧编辑特效。举例如果选择一个文件输入节点,自定义特效,文件输出节点保存,就可以实现音频编辑。



























songshizhao
最初发表2021/6/21 10:44:36 最近更新2021/6/29 18:12:20 1740
为此篇作品打分
10