解决app中多语音出现的冲突问题

由于我项目里的特殊要求,项目中既有音乐播放,又有语音提示,就导致了一些莫名其妙的问题。

前提

  音乐中播放音乐用的豆瓣开源的框架DOUAudioStreamer 地址:douban/DOUAudioStreamer · GitHub 真心感谢豆瓣的这些开源项目,膜拜。

语音播报用的是讯飞语音,在线版。

问题描述

当项目中音乐和语音播报都播放了,这时候我切换到虾米音乐点击播放音乐的时候,虾米音乐可以播放,但奇怪的是我的app的音乐并没有暂停,还在播放中...两个播放器同时播放音乐了...

解决办法

在查了一些文章和资料后知道应该是音乐设置类别的时候出问题了。

DOUAudioStreamer  设置类别的时候是这样的,是没有问题的

UInt32 audioCategory = kAudioSessionCategory_MediaPlayback;

AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(audioCategory), &audioCategory);

猜测是讯飞语音出的影响,讯飞语音是静态库的形式,看不到源代码,猜测用的是AVAudioSession

不能修改源代码 那就写个AVAudioSession的category

重写- (BOOL)setCategory:(NSString *)category error:(NSError **)outError;方法

强制返回NO,上面的问题解决了,音乐不会同时播放了

但是这样播报就不会出声了,DOUAudioStreamer播放过一次音乐以后播报就可以正常播报了,所以最终的解决办法就是写这个分类并且在程序刚启动的时候播放一秒空MP3文件再停止。虽然问题解决了,但却为以后打下了隐患。。。希望谁看到这个问题,有更好的解决办法能告诉我下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,192评论 4 61
  • 今早上,有些晚。匆匆忙忙地往站台上跑,三四辆公交车都停在哪儿,当我气喘息息跑到,只剩下一辆绿色车。眼睛有些近视,看...
    玉妮阅读 418评论 6 6
  • 泰坦尼克号海难,是20世纪人类十大灾难之一。据说,在2208名乘客和船员中,仅有705人生还。 在幸存者中,船员占...
    教育经典撷粹阅读 1,778评论 0 1
  • 中午下班,经过老县府路口,路边有一卖桃子的,买桃子的人比较多,在品尝了老板的一小块卖桃子后,我精心挑起了桃...
    宁静的夏天_1666阅读 133评论 0 0
  • (好日子)百里故乡人情浓,千里家乡情谊重。节日聚首多喜庆,几家婚嫁几家娶。每逢佳节倍思亲,每到好日皆宴多。堂前刘府...
    甘朝武阅读 121评论 0 0