当前位置:  开发笔记 > 运维 > 正文

帮助音频服务功能

如何解决《帮助音频服务功能》经验,为你挑选了1个好方法。



1> mmc..:

如果您使用系统声音服务机制播放短系统声音(短于30秒)(代码如下所示)

#include 

    SystemSoundID aSoundID;

/* Setup */
    SystemSoundID aSoundID;
    OSStatus error = 
             AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);
    if (error == kAudioServicesNoError) { // success
        _soundID = aSoundID;
    }

/* Play */
    AudioServicesPlaySystemSound(aSoundID);

/* Dispose */
    AudioServicesDisposeSystemSoundID(aSoundID);

您可以使用AudioServicesSetProperty使用此功能设置两个属性.

它们是:kAudioServicesPropertyIsUISound ='isui',kAudioServicesPropertyCompletePlaybackIfAppDies ='ifdi'

kAudioServicesPropertyIsUISound,如果设置为1,则表示对于由inSpecifier参数传递的系统声音指定的音频文件,System Sound服务器会尊重Sound Effects首选项中的用户设置,并在用户关闭声音效果时保持静音.

默认情况下,此属性设置为1.将其设置为0,系统声音在传递给AudioServicesPlaySystemSound时始终播放,无论用户在声音首选项中的设置如何.

kAudioServicesPropertyCompletePlaybackIfAppDies,如果设置为1,则表示即使客户端应用程序终止,inSpecifier参数中传递的系统声音指定的音频文件也应该完成播放.例如,如果用户退出或应用程序在声音播放时意外终止,则可能发生这种情况.默认值为0.也就是说,如果您希望声音完成播放,则必须将此属性的值显式设置为1,即使应用程序终止也是如此.

编辑:重新阅读你的问题,它似乎可能更"我如何设置属性"而不是"这件事做什么"在这种情况下,以下将更有用:

假设您按照我上面的指定设置了声音,您可以通过执行以下操作将此特定SystemSoundID对象设置为忽略手机侧面的"静音"设置:

UInt32 flag = 0;
err = AudioServicesSetProperty(kAudioServicesPropertyIsUISound,
                               sizeof(UInt32),
                               &aSoundID,
                               sizeof(UInt32),
                               &flag);

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有