AVAUDIOPLAYER ViewControllers Uitableview

时间:2016-02-26 14:04:30

标签: ios objective-c uitableview avaudioplayer

我正在创建一个拥有2个viewcontrollers(标签栏)的应用程序,我正在使用AVAUDIOPlayer播放来自网址的歌曲(存放在uitableview中)。第一个viewcontroller列出了我的所有url和第二个View控制器,这是用户喜欢的最爱。

我已经搜索过,但我无法得到正确的答案。我想在视图控制器之间控制AVAUDIOPLAYER。

示例:歌曲正在第一个播放,用户选择另一个播放到第二个视图控制器。第一个停止歌曲并在第二个视图控制器中播放。

我该怎么做?单身avaudioplayer? appdelegate方法?

感谢

1 个答案:

答案 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];

使用

管理您的AVAudioPlayer
globals.songplayer

我希望它会对你有所帮助!