虽然audioGraph更强大,但如只需要播放音频,那么直接使用MediaPlayer对象即可。因为AudioGraph在uwp中平台使用目前有2个缺点(如果单纯的播放):
1.不集成进度条,播放控制等
进度条需要自己写slider,后台轮询播放进度,前台拖动进度,播放暂停等和后台交互等都需要手动编写实现。
2.无法后台播放
备注: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不是节点,是用来给每一帧编辑特效。举例如果选择一个文件输入节点,自定义特效,文件输出节点保存,就可以实现音频编辑。