iOS実装フロント、バックグラウンド、ロックスクリーン、またはapp音声放送のオフについて

1951 ワード


会社はアリペイの入金のように、プッシュを受け取って音声放送機能を実現するように要求していますが、これまでやったことがありません.
使用する技術点:
1.音声に対する要求が特に高くない場合は、アップルシステムが持参したAVSpeechUtteranceで実現したり、メッセージが飛ぶsdkで実現したりすることができます.
2.以前は友盟プッシュで、基本的な弾枠形式プッシュを実現していましたが、音声放送のロック画面での状況が正常であるため、iOS 10から発売されたUNNotificationServiceExtension「プッシュ拡張」を追加しました.
フロントで音声放送を実現することについては、簡単ですが、
xcodeバックグラウンド設定
-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler( ) 

AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:alterText];

//            utterance.voice  = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-TW"];// 

//            utterance.rate  = 0.4;  // 

//            utterance.volume = 0.0;  // (0.0~1.0) 1.0

//            utterance.pitchMultiplier    = 1.0;  //  (0.5-2.0)

//            AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];

//            [synth speakUtterance:utterance];

バックグラウンドで音声放送を実現
ありがとうcom/p/c 06133 d 576 e 4著者の共有は、著者が提供した方法を利用して、バックグラウンドでの再生も実現したが、スクリーンをロックしたりappを閉じたりすることは音声放送を完了できない.著者が提供したUNNotificationServiceExtensionに基づいて、スクリーンロック状況の音声放送を検索しました.
1.UNNotificationServiceExtensionの作成参考www.cocoachina.com/ios/20161017/17769.html作成完了後-(void)d i d R c e i v e NotificationRequest:(UNNotificationRequest*)request withContentHandler:(void(^)(UNNotificationContent*_Nonnull))contentHandlerで音声配信する方法を追加します.この方法は、主にバウンドが発売されない前に30 sの時間にプッシュされた内容を処理するので、プッシュする音声はあまり長くしないほうがいいです.
注意:プロジェクトの要件がフロントとバックグラウンドで再生される場合は、www.jianshuを参照する必要があります.com/p/c 06133 d 576 e 4の方法は、すべての場合必要であれば、UNNotificationServiceExtensionを追加し、音声放送のコードを記入するだけで、⚠️,必ずプッシュする「aps」辞書には、mutable-contentキーが必ず含まれ、mutable-contentの値は1です.さもないとプッシュ拡張の方法を歩かない.
支付宝はこの方法でiOS 10以降の音声放送を完了し、iOS 10以前は一端の固定音声を放送するだけで、固定オーディオファイルをディレクトリの下に置き、バックグラウンドのsoundパラメータにオーディオファイルの名前を書く.