iOS音频文件未播放
我正在尝试在iOS应用程序中播放1.9秒的音频文件,代码如下:iOS音频文件未播放,ios,audio,Ios,Audio,我正在尝试在iOS应用程序中播放1.9秒的音频文件,代码如下: NSString *path = [[NSBundle mainBundle] pathForResource:@"bell" ofType:@"wav"]; NSURL *pathURL = [NSURL fileURLWithPath : path]; SystemSoundID audioEffect; AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL,
NSString *path = [[NSBundle mainBundle] pathForResource:@"bell" ofType:@"wav"];
NSURL *pathURL = [NSURL fileURLWithPath : path];
SystemSoundID audioEffect;
AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL, &audioEffect);
AudioServicesPlaySystemSound(audioEffect);
AudioServicesDisposeSystemSoundID(audioEffect);
音频文件从不播放,但会调用代码
编辑:文件bell.wav
bell.wav:RIFF(little endian)数据、WAVE音频、Microsoft PCM、16位、48000 Hz立体声
问题是您在声音开始播放之前就处理了它
我的书教你怎么做。以下是我在书中提供的代码:
void SoundFinished (SystemSoundID snd, void* context) {
// NSLog(@"finished!");
AudioServicesRemoveSystemSoundCompletion(snd);
AudioServicesDisposeSystemSoundID(snd);
}
- (IBAction)doButton:(id)sender {
NSURL* sndurl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"aif"];
SystemSoundID snd;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)sndurl, &snd);
AudioServicesAddSystemSoundCompletion(snd, nil, nil, SoundFinished, nil);
AudioServicesPlaySystemSound(snd);
}
你可以调整它来使用你的声音,并以你需要的方式触发播放
但是,请注意,不应将1.9秒的声音用作系统声音。使用AVAudioPlayer(我的书也教你这么做)要好得多。问题是你在声音开始播放之前就处理了它 我的书教你怎么做。以下是我在书中提供的代码:
void SoundFinished (SystemSoundID snd, void* context) {
// NSLog(@"finished!");
AudioServicesRemoveSystemSoundCompletion(snd);
AudioServicesDisposeSystemSoundID(snd);
}
- (IBAction)doButton:(id)sender {
NSURL* sndurl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"aif"];
SystemSoundID snd;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)sndurl, &snd);
AudioServicesAddSystemSoundCompletion(snd, nil, nil, SoundFinished, nil);
AudioServicesPlaySystemSound(snd);
}
你可以调整它来使用你的声音,并以你需要的方式触发播放
但是,请注意,不应将1.9秒的声音用作系统声音。使用AVAudioPlayer(我的书也教你这么做)要好得多。问题是你在声音开始播放之前就处理了它 我的书教你怎么做。以下是我在书中提供的代码:
void SoundFinished (SystemSoundID snd, void* context) {
// NSLog(@"finished!");
AudioServicesRemoveSystemSoundCompletion(snd);
AudioServicesDisposeSystemSoundID(snd);
}
- (IBAction)doButton:(id)sender {
NSURL* sndurl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"aif"];
SystemSoundID snd;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)sndurl, &snd);
AudioServicesAddSystemSoundCompletion(snd, nil, nil, SoundFinished, nil);
AudioServicesPlaySystemSound(snd);
}
你可以调整它来使用你的声音,并以你需要的方式触发播放
但是,请注意,不应将1.9秒的声音用作系统声音。使用AVAudioPlayer(我的书也教你这么做)要好得多。问题是你在声音开始播放之前就处理了它 我的书教你怎么做。以下是我在书中提供的代码:
void SoundFinished (SystemSoundID snd, void* context) {
// NSLog(@"finished!");
AudioServicesRemoveSystemSoundCompletion(snd);
AudioServicesDisposeSystemSoundID(snd);
}
- (IBAction)doButton:(id)sender {
NSURL* sndurl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"aif"];
SystemSoundID snd;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)sndurl, &snd);
AudioServicesAddSystemSoundCompletion(snd, nil, nil, SoundFinished, nil);
AudioServicesPlaySystemSound(snd);
}
你可以调整它来使用你的声音,并以你需要的方式触发播放
但是,请注意,不应将1.9秒的声音用作系统声音。使用AVAudioPlayer(我的书也教你这么做)要好得多。1。检查pathURL是否为空(添加NSLog)。2.检查WAV文件是否真的是普通PCM(不是一些奇怪的ADPCM或MP3等)-如有疑问,请将其转换为普通16位PCM。@直到路径不为零,您是否检查了点2?请在终端中运行
文件bell.wav
向我们提供所有详细信息。您的音频编码看起来不错。任何iOS设备都应该可以播放这些内容。那么,请尝试不同的声音,确保您的设备在测试时没有静音,如果一切都失败,请尝试不同的API(例如AVFramework)。1。检查pathURL是否为空(添加NSLog)。2.检查WAV文件是否真的是普通PCM(不是一些奇怪的ADPCM或MP3等)-如有疑问,请将其转换为普通16位PCM。@直到路径不为零,您是否检查了点2?请在终端中运行文件bell.wav
向我们提供所有详细信息。您的音频编码看起来不错。任何iOS设备都应该可以播放这些内容。那么,请尝试不同的声音,确保您的设备在测试时没有静音,如果一切都失败,请尝试不同的API(例如AVFramework)。1。检查pathURL是否为空(添加NSLog)。2.检查WAV文件是否真的是普通PCM(不是一些奇怪的ADPCM或MP3等)-如有疑问,请将其转换为普通16位PCM。@直到路径不为零,您是否检查了点2?请在终端中运行文件bell.wav
向我们提供所有详细信息。您的音频编码看起来不错。任何iOS设备都应该可以播放这些内容。那么,请尝试不同的声音,确保您的设备在测试时没有静音,如果一切都失败,请尝试不同的API(例如AVFramework)。1。检查pathURL是否为空(添加NSLog)。2.检查WAV文件是否真的是普通PCM(不是一些奇怪的ADPCM或MP3等)-如有疑问,请将其转换为普通16位PCM。@直到路径不为零,您是否检查了点2?请在终端中运行文件bell.wav
向我们提供所有详细信息。您的音频编码看起来不错。任何iOS设备都应该可以播放这些内容。那么,请尝试不同的声音,确保您的设备在测试时没有静音,如果一切都失败,请尝试不同的API(例如AVFramework)。