当PN(推送通知)远程通知到达时,如何长时间播放声音

时间:2018-01-24 05:48:49

标签: ios objective-c push-notification

当PN(推送通知)使用Objective-c到达我的设备时,如何重复声音文件。

2 个答案:

答案 0 :(得分:0)

您可以在此网站找到如何自定义提醒声音:Managing Your App’s Notification Support并且铃声 不能超过30秒

< / p>

  

准备自定义提醒声音

  对于iOS中的远程通知,您可以指定iOS在为应用程序提供本地或远程通知时播放的自定义声音。声音文件必须位于客户端应用程序的主包中。

     

自定义提醒声音由iOS系统声音设备播放,因此它们必须采用以下音频数据格式之一:

     

线性PCM

  MA4(IMA / ADPCM)

  μLaw

  ALAW

  您可以将音频数据打包在aiff,wav或caf文件中。然后,在Xcode中,将声音文件作为应用程序包的非本地化资源添加到项目中。

     

您可以使用afconvert工具转换声音。例如,要将16位线性PCM系统声音Submarine.aiff转换为CAF文件中的IMA4音频,请在终端应用程序中使用以下命令:

     

afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v

  您可以通过在QuickTime Player中打开声音并从“电影”菜单中选择“显示电影检查器”来检查声音以确定其数据格式。

     

播放时,自定义声音必须低于30秒。如果自定义声音超过该限制,则会改为播放默认系统声音。

您可以使用自定义提醒声音名称将此示例字典发送到APNs服务器,以获取 'sound' 的值:

// Create the payload body
$body['aps'] = array(
                    'alert' => 'TestNotification',
                    'sound' => 'YourCustomAlertSoundName.caf',
                    'badge' => 8

在为项目的主要包装制作好铃声之后,重要的一步是将您添加的声音文件(YourCustomAlertSoundName.caf)添加到Build Phases-&gt;复制项目设置中的捆绑资源,铃声不能超过30秒,否则系统将启用默认铃声(默认)。

答案 1 :(得分:0)

您只需在推送有效负载上将自定义文件设置为声音即可。将相同的音频文件放入构建资源,只需从服务器发出通知,它就会播放音频。

{
   "aps" : 
   { 
       "alert" : "This is your alert text" 
       "sound" : "YOUR_COSTOM_FILE_NAME.mp4"
   },
}

当应用程序处于前台模式时,您需要在收到接收通知时播放相同的音频文件。