Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在另一个视图控制器中为AVPlayer创建播放/暂停按钮_Ios_Objective C_Uibutton - Fatal编程技术网

Ios 在另一个视图控制器中为AVPlayer创建播放/暂停按钮

Ios 在另一个视图控制器中为AVPlayer创建播放/暂停按钮,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我正在为AVPlayer创建播放/暂停按钮,但实际的播放器位于UIView中,该按钮位于我正在创建播放器实例的UIViewController中。如果我简单地输入[self.player play],视频就会播放在播放器的代码中,但当我试图通过按钮控制播放和暂停时,它不会 代码如下: -(IBAction)playPauseButtonClicked:(id)sender { PlayerView *player = [[PlayerView alloc] init]; if (s

我正在为AVPlayer创建播放/暂停按钮,但实际的播放器位于
UIView
中,该按钮位于我正在创建播放器实例的
UIViewController
中。如果我简单地输入
[self.player play],视频就会播放在播放器的代码中,但当我试图通过按钮控制播放和暂停时,它不会

代码如下:

-(IBAction)playPauseButtonClicked:(id)sender
{
   PlayerView *player = [[PlayerView alloc] init];

   if (self.playing == YES)
  {
    [player.player pause];
    self.playing = NO;
    NSLog(@"Pause");
  }
  else
  {
   [player.player play];
    NSLog(@"Play");
    self.playing = YES;
  }

//    UIButton *theButton = (UIButton *)sender;
//    
//    self.playing = !self.playing;
//    [theButton setImage:self.playing ? @"pauseImage.png":@"playImage.png" forState:UIControlStateNormal];
 }

你必须好好学习面向对象的概念和对象通信

您正在
playbausebuttonclick
中创建PlayerView类对象

相反,您必须将现有的
PlayerView
对象传递到包含
playbausebuttonclicked
方法的类中

示例:

A类:

B类:

.h文件

@property (nonatomic,weak) PlayerView *player;
-(IBAction)playPauseButtonClicked:(id)sender { 

 if (self.player.playing == YES)
 {
    [self.player pause];
    self.player.playing = NO;
    NSLog(@"Pause");
 }
 else
 {
   [self.player play];
    NSLog(@"Play");
    self.player.playing = YES;
 }

}
.m文件

@property (nonatomic,weak) PlayerView *player;
-(IBAction)playPauseButtonClicked:(id)sender { 

 if (self.player.playing == YES)
 {
    [self.player pause];
    self.player.playing = NO;
    NSLog(@"Pause");
 }
 else
 {
   [self.player play];
    NSLog(@"Play");
    self.player.playing = YES;
 }

}

你必须好好学习面向对象的概念和对象通信

您正在
playbausebuttonclick
中创建PlayerView类对象

相反,您必须将现有的
PlayerView
对象传递到包含
playbausebuttonclicked
方法的类中

示例:

A类:

B类:

.h文件

@property (nonatomic,weak) PlayerView *player;
-(IBAction)playPauseButtonClicked:(id)sender { 

 if (self.player.playing == YES)
 {
    [self.player pause];
    self.player.playing = NO;
    NSLog(@"Pause");
 }
 else
 {
   [self.player play];
    NSLog(@"Play");
    self.player.playing = YES;
 }

}
.m文件

@property (nonatomic,weak) PlayerView *player;
-(IBAction)playPauseButtonClicked:(id)sender { 

 if (self.player.playing == YES)
 {
    [self.player pause];
    self.player.playing = NO;
    NSLog(@"Pause");
 }
 else
 {
   [self.player play];
    NSLog(@"Play");
    self.player.playing = YES;
 }

}

首先,将PlayerView对象传递给下一个视图控制器

在FirstViewController.h和SecondViewController.h文件中声明PlayerView的对象

比如

@属性(非原子,保留)PlayerView*播放器

当从第一视图控制器导航到第二视图控制器时,包含以下代码:

SecondViewController*obj=[[SecondViewController alloc]init]; obj.player=self.player

现在,在-(iAction)播放暂停按钮中,单击第二视图控制器的:(id)发送方方法

从代码中删除该行:PlayerView*player=[[PlayerView alloc]init]

因为上面的一行创建了播放器视图的新对象,而不是先前视图控制器AVPlayer对象的对象,所以请编写此更新的方法

-(IBAction)playPauseButtonClicked:(id)sender { 

    if (self.playing == YES)
    {
        [player.player pause];
        self.playing = NO;
        NSLog(@"Pause");
    }
    else
    {
        [player.player play];
        NSLog(@"Play");
        self.playing = YES;
    }
}

首先,将PlayerView对象传递给下一个视图控制器

在FirstViewController.h和SecondViewController.h文件中声明PlayerView的对象

比如

@属性(非原子,保留)PlayerView*播放器

当从第一视图控制器导航到第二视图控制器时,包含以下代码:

SecondViewController*obj=[[SecondViewController alloc]init]; obj.player=self.player

现在,在-(iAction)播放暂停按钮中,单击第二视图控制器的:(id)发送方方法

从代码中删除该行:PlayerView*player=[[PlayerView alloc]init]

因为上面的一行创建了播放器视图的新对象,而不是先前视图控制器AVPlayer对象的对象,所以请编写此更新的方法

-(IBAction)playPauseButtonClicked:(id)sender { 

    if (self.playing == YES)
    {
        [player.player pause];
        self.playing = NO;
        NSLog(@"Pause");
    }
    else
    {
        [player.player play];
        NSLog(@"Play");
        self.playing = YES;
    }
}

这不会改变任何东西这不会改变任何东西所以我在UIView中创建了播放器,然后在我的viewController中创建了它的实例。我正在尝试使在视图中创建的播放器播放并暂停。我已在UIView中创建了该播放器,然后在我的viewController中创建了该播放器的实例。我试图让在视图中创建的播放器播放并暂停