Ree*_*eds 1 iphone audio xcode objective-c
这是伴随音频服务功能AudioServicesSetProperty的模糊.它有点过头了.有人能给我一个如何实际使用它的例子.谢谢.
AudioServicesSetProperty设置指定的System Sound Services属性的值.
OSStatus AudioServicesSetProperty(
AudioServicesPropertyID inPropertyID,UInt32 inSpecifierSize,const void*inSpecifier,UInt32 inPropertyDataSize,const void*inPropertyData);参数:
inPropertyID:要设置其值的属性.
inSpecifierSize:inSpecifier参数指向的缓冲区大小.如果不需要说明符缓冲区则传递0.
inSpecifier:指向说明符缓冲区的指针,如果要获取信息的属性需要这样的缓冲区.如果不需要说明符,则传递NULL.
inPropertyDataSize:outPropertyData参数指向的缓冲区的大小(以字节为单位).
inPropertyData:要设置的属性值.
如果您使用系统声音服务机制播放短系统声音(短于30秒)(代码如下所示)
#include <AudioToolbox/AudioToolbox.h>
SystemSoundID aSoundID;
/* Setup */
SystemSoundID aSoundID;
OSStatus error =
AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);
if (error == kAudioServicesNoError) { // success
_soundID = aSoundID;
}
/* Play */
AudioServicesPlaySystemSound(aSoundID);
/* Dispose */
AudioServicesDisposeSystemSoundID(aSoundID);
Run Code Online (Sandbox Code Playgroud)
您可以使用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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2840 次 |
| 最近记录: |