gpt4 book ai didi

iphone - 音频播放器不会从其他 View 停止

转载 作者:行者123 更新时间:2023-11-28 22:43:06 27 4
gpt4 key购买 nike

在第一个 View 中,我创建了音频播放器并从头开始加载

@interface SplashViewController : UIViewController
...
@property (strong, nonatomic) AVAudioPlayer *mp3;
...
- (void)viewDidLoad
{
[super viewDidLoad];
[self viewDidAppear:YES];
NSString *path = [[NSBundle mainBundle]pathForResource:@"sooner" ofType:@"mp3"];
NSURL *url = [NSURL fileURLWithPath:path];
NSError *error;
mp3 = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
[mp3 setNumberOfLoops:-1];
[mp3 setVolume:1.0];
[mp3 play];
}

好的,我有很多观点,我很高兴音乐播放总是与我工作的观点无关。但我需要在其他(我的 SettingView)中停止音乐。我在 SettingView 中有下一个代码,但我没有结果 - 音乐播放和播放,不想停止

@class SplashViewController;
@interface SettingsViewController : UIViewController

@property (strong, nonatomic) SplashViewController *splashViewController;

________________________________________________________
#import "SplashViewController.h"
...
@implementation SettingsViewController
@synthesize pauseMusik; //UISwitch
@synthesize splashViewController = _splashViewController;
...
-(IBAction)playPauseMusik:(id)sender
{
if(!self.splashViewController)
self.splashViewController = [[SplashViewController
alloc]initWithNibName:@"SplashViewController" bundle:nil];
if (pauseMusik.on) {
[self.splashViewController.mp3 play];
}
else
[self.splashViewController.mp3 stop];}

我哪里做错了?

最佳答案

你可以使用 NSNotificationCenter。例如.. 你的 IBaction(来自 SettingController):

if.. {
[[NSNotificationCenter defaultCenter] postNotificationName:@"actionChangedStop" object:nil];
}
else
[[NSNotificationCenter defaultCenter] postNotificationName:@"actionChangedPlay" object:nil];
}

NSNotificationCenter 向整个应用程序发送“广播”消息。

现在我们需要一个观察者......在 SplashController 中:

- (void)viewDidLoad
{
[super viewDidLoad];
..
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(actionChangedStop)
name:@"actionChangedStop"
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(actionChangedPlay)
name:@"actionChangedPlay"
object:nil];
...

.. 一个给定的方法被调用..

-(void)actionChangedStop{[audioPlayer stop];}
-(void)actionChangedPlay{[audioPlayer play];}

.. 瞧

关于iphone - 音频播放器不会从其他 View 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938243/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com