首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 遠程推送提示音機制:系統默認音與自定義音頻的播放原理

     編輯:程式設計綜合問答

系統默認提示音

APNs Payload 中 aps.sound 缺失或為 "default" 時,系統播放內置三聲提示音,無需客戶端代碼參與。

自定義提示音實現

  1. 服務端下發 "sound": "custom.caf"。
  2. 客戶端 App Bundle 包含 custom.caf(≤30s,支持格式:caf/aiff/wav)。
  3. 系統接收推送 → 讀取 Bundle 中同名文件 → 調用 AudioServicesPlaySystemSound 播放。

前台應用自定義播放邏輯

若需在前台自行控制播放(如混音、振動配合),可在 didReceiveRemoteNotification 中:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    NSString *soundName = userInfo[@"aps"][@"sound"];
    if (soundName && ![soundName isEqualToString:@"default"]) {
        NSURL *url = [[NSBundle mainBundle] URLForResource:[soundName stringByDeletingPathExtension] withExtension:[soundName pathExtension]];
        SystemSoundID soundID;
        AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &soundID);
        AudioServicesPlaySystemSound(soundID);
    }
}

關鍵點

  • 遠程推送聲音**完全由系統根據 Payload 控制**;前台代碼僅能補充播放,不可阻止系統默認行為。
  • 靜音模式(側邊開關)會屏蔽系統推送聲音,但 AudioServicesPlaySystemSound 可能仍可聽見(取決於類別)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved