ios 16 AVSpeechSynthesizer 没声音

真机调试用ios15测试文字转语音是有声音的,ios16下没声音

//需要转换的文字
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"播放文字"];
utterance.rate = 0.5;// 语速,范围0.0~1.0
utterance.pitchMultiplier = 1.5; // 音高,范围0.5~2.0
utterance.volume = 1; // 音量,范围0~1
 //设置发音,这是中文普通话
 AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];
utterance.voice = voice;
//开始播放
AVSpeechSynthesizer *avSpeech = [[AVSpeechSynthesizer alloc] init];
avSpeech.delegate = self;    
 [avSpeech speakUtterance:utterance];

最后发现,是IOS6设置了静音,关闭静音模式就可以播放了
需要在静音模式下播放,只需在进入页面时设置AVAudioSession即可

 //后台播放 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil];
//静音状态下播放 
[[AVAudioSession sharedInstance] setActive:YES error:nil];
//设置代理 可以处理电话打进时中断音乐播放 
  [[AVAudioSession sharedInstance] setDelegate:self]; 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容