我正在创建一个拥有2个viewcontrollers(标签栏)的应用程序,我正在使用AVAUDIOPlayer播放来自网址的歌曲(存放在uitableview中)。第一个viewcontroller列出了我的所有url和第二个View控制器,这是用户喜欢的最爱。
我已经搜索过,但我无法得到正确的答案。我想在视图控制器之间控制AVAUDIOPLAYER。
示例:歌曲正在第一个播放,用户选择另一个播放到第二个视图控制器。第一个停止歌曲并在第二个视图控制器中播放。
我该怎么做?单身avaudioplayer? appdelegate方法?
感谢
答案 0 :(得分:0)
我要做的是一个包含AVAudioPlayer的全局类的共享实例。这样的事情。
GlobalVars.h
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>
@interface GlobalVars : NSObject
{
AVAudioPlayer *songplayer;
}
+ (GlobalVars *)sharedInstance;
@property (nonatomic, strong) AVAudioPlayer *songplayer;
@end
GlobalsVars.m
#import "GlobalVars.h"
@implementation GlobalVars
@synthesize songplayer = songplayer;
+ (GlobalVars *)sharedInstance {
static dispatch_once_t onceToken;
static GlobalVars *instance = nil;
dispatch_once(&onceToken, ^{
instance = [[GlobalVars alloc] init];
});
return instance;
}
- (id)init {
self = [super init];
if (self) {
songplayer = [[AVAudioPlayer alloc] init];
}
return self;
}
@end
然后,在viewControllers(或pch文件中)导入GlobalsVars.h并创建实例
GlobalVars *globals;
并分享实例
globals = [GlobalVars sharedInstance];
使用
管理您的AVAudioPlayerglobals.songplayer
我希望它会对你有所帮助!