JSA*_*986 4 xcode objective-c avaudioplayer ios
我在我的应用程序中播放声音,我想循环播放.我对此的研究并没有完全解决我的问题.
我的代码.m
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"ar4", CFSTR
("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID (soundFileURLRef, &soundID);
AudioServicesPlaySystemSound (soundID);
Run Code Online (Sandbox Code Playgroud)
我想我需要把这样的东西放进去
numberOfLoops = -1;
Run Code Online (Sandbox Code Playgroud)
但不确定如何在我的代码中实现,因为我收到numberOfLoops的未声明错误.一些建议将非常感谢
Baz*_*nga 11
这样的事情应该可以解决你的问题:
NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
resourcePath = [resourcePath stringByAppendingString:@"/YOURMUSICNAME.mp3"];
NSLog(@"Path to play: %@", resourcePath);
NSError* err;
//Initialize our player pointing to the path to our resource
player = [[AVAudioPlayer alloc] initWithContentsOfURL:
[NSURL fileURLWithPath:resourcePath] error:&err];
if( err ){
//bail!
NSLog(@"Failed with reason: %@", [err localizedDescription]);
}
else{
//set our delegate and begin playback
player.delegate = self;
[player play];
player.numberOfLoops = -1;
player.currentTime = 0;
player.volume = 1.0;
}
Run Code Online (Sandbox Code Playgroud)
然后,如果你想阻止它:
[player stop];
Run Code Online (Sandbox Code Playgroud)
或暂停:
[player pause];
Run Code Online (Sandbox Code Playgroud)
并将其导入头文件中:
#import <AVFoundation/AVFoundation.h>.
Run Code Online (Sandbox Code Playgroud)
你应该在你的标题中声明它,然后合成它.
//.h并添加粗体部分:
@interface ViewController:UIViewController < AVAudioPlayerDelegate > {
AVAudioPlayer *player;
}
@property (nonatomic, retain) AVAudioPlayer *player;
Run Code Online (Sandbox Code Playgroud)
//.m
@synthesize player;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5773 次 |
| 最近记录: |