Каков наилучший способ воспроизведения звука на iOS 8.2?Лучший способ воспроизведения короткого звука на iOS 8.2
9
A
ответ
18
Самый простой способ, чтобы импортировать структуру AudioToolbox как так #import <AudioToolbox/AudioToolbox.h>
то все, что вам нужно сделать, это:
NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"Beep" ofType:@"mp3"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:soundPath], &soundID);
AudioServicesPlaySystemSound(soundID);
Это лучше всего подходит для очень коротких звуков, таких как звуковые сигналы и т.д., потому что вы не будете иметь много контроль над звучит так, как если бы вы с AVAudioPlayer
.
10
Использование AVAudio - больше кода, что с помощью AudioToolbox, но она более гибкая (если вам это нужно в будущем)
0.
#import <AVFoundation/AVFoundation.h>
1.
//conform to delegate and make a property
@interface ViewController() <AVAudioPlayerDelegate>
@property (nonatomic, strong) AVAudioPlayer *audioplayer; //the player
@end
2.
//have a lazy property for the player! where you also tell it to load the sound
#define YourSound @"sound.caf"
- (AVAudioPlayer *)audioplayer {
if(!_audioplayer) {
NSURL *audioURL = [[NSBundle mainBundle] URLForResource:YourSound.stringByDeletingPathExtension withExtension:YourSound.pathExtension];
NSData *audioData = [NSData dataWithContentsOfURL:audioURL];
NSError *error = nil;
// assing the audioplayer to a property so ARC won't release it immediately
_audioplayer = [[AVAudioPlayer alloc] initWithData:audioData error:&error];
_audioplayer.delegate = self;
}
return _audioplayer;
}
3.
//play
- (void)action {
[self.audioplayer play];
}
2
#Import Avfoundation.Framework
AVAudioPlayer *_audioPlayer; //Declare Globally
Nsstring *path =[Nsstring stringwithformat:@"%@/Beep.mp3",[[Nsbundle mainBundle] resourcePath]]; //Give Your Local Path
Nsurl *soundUrl= [Nsurl FileUrlWithPath:path];
_audioPlayer=[[AvAudioPlayer alloc] initwithContents ofurl:soundUrl error:nil];
_audioPlayer.volume=1.0; //Give Volume
_audioPlayer.numberOfLoops=loop; //Give number of loop for repeating sound
_audioPlayer.enableRate = Yes;
_audioPlayer.rate=2.0f; //Give for fast playing sound. default value is 1.0f;
[_audioPlayer Play];
как насчет AVAudioPlayer? –