Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS音频文件未播放_Ios_Audio - Fatal编程技术网

iOS音频文件未播放

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,

我正在尝试在iOS应用程序中播放1.9秒的音频文件,代码如下:

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)。