AVAUDIOPLAYER ViewControllers Uitableview

AVAUDIOPLAYER ViewControllers Uitableview

我正在创建一个有 2 viewcontrollers(标签栏)的应用程序,我正在使用 AVAUDIOPlayer 播放来自 urls 的歌曲(存储在 uitableview 中)。第一个 viewcontroller 列出了我所有的 url 和第二个 View controller,用户最喜欢的。

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

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

我该怎么做?单例音频播放器? appdelegate 方法?

谢谢

我要做的是在其中包含 AVAudioPlayer 的全局 class 的共享实例。像这样。

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

希望对您有所帮助!