JoJ*_*oJo 11 iphone cocoa-touch objective-c ios
这就是我在iOS 4中播放哔声的效果:
SystemSoundId beepOnSoundId;
CFURLRef soundUrl = CFBundleCopyResourceURL(
CFBundleGetMainBundle(),
CFSTR("beep"),
CFSTR("wav"),
NULL
);
// soundUrl logged:
// file://localhost/var/mobile/Applications/ ... beep.wav
AudioServicesCreateSystemSoundID(soundUrl, &beepOnSoundId);
// beepOnSoundId logged: 4097
AudioServicesPlaySystemSound(beepOnSoundId);
Run Code Online (Sandbox Code Playgroud)
当我将设备升级到iOS 5时,它停止工作.我什么都没听到.我注销了所有变量,没有一个是零或0.
iOS 5中的API如何改变我的声音播放代码?
问题可能是因为我AVCaptureSession在播放声音时跑步了.iOS 5不知何故不允许你这样做.当我从相机录制东西时,我需要发出哔哔声.
Gab*_*iel 10
一个问题可能是在ios 5中,当您调用AudioServicesPlaySystemSound时,如果存在活动的AVCaptureSession且音频设备处于活动状态,则它将停止工作.
还要检查文件中的导入名称,确保audiotoolbox导入在所有viewcontroller中.我也去了一个指南并为你得到了:)我将把网站的名字留在底部
步骤1:导入AudioToolbox框架首先将Audio Toolbox框架导入到您的应用程序中,以便为您的代码提供系统声音服务.为此,在Xcode的Project Navigator窗格中选择"PhoneAppSkin"项目,然后在"TARGETS"下选择"PhoneAppSkin",最后选择"Build Phases"选项卡.完成后,您的屏幕应如下所示:

接下来,单击"Link Binary With Libraries"下拉列表,然后单击"+"符号将新框架添加到项目的链接阶段.

最后,在弹出窗口中找到"AudioToolbox"框架,然后单击"添加".

接下来,打开PhoneViewController.h文件并添加实际将Audio Toolbox框架导入到您的类中所需的行:
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>
Run Code Online (Sandbox Code Playgroud)
音频工具箱功能现在应该可以工作
网站我从以下网站获取图片:http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_playing-systemsoundid/
我有几乎相同的代码,它适用于iOS5中的视频和音频媒体会话.如果你有一个函数中的所有代码来播放声音,问题可能是SystemSoundID对象在播放声音之前被解除分配,或者问题可能在于URL.但我想这是第一个.
请参阅以下代码:
该SystemSoundID声明是在对象的头部和对象住足够长的时间来播放声音.
SystemSoundID soundID;
Run Code Online (Sandbox Code Playgroud)
该AudioServicesCreateSystemSoundID是在对象初始化.
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource: @"sound" ofType:@"wav"]], &soundID);
Run Code Online (Sandbox Code Playgroud)
然后,您可以在对象内的任何位置使用AudioServicesPlaySystemSound.
AudioServicesPlaySystemSound(soundID);
Run Code Online (Sandbox Code Playgroud)
尝试将这些片段代码放在适当的位置,你应该听到声音.