真机调试用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];