ios - 在另一个 View Controller 中为 AVPlayer 创建播放/暂停按钮

标签 ios objective-c uibutton

我正在为 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];
 }

最佳答案

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

您正在 playPauseButtonClicked 中再次创建 PlayerView 类对象。

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

示例:

A 级:

ClassB *classB = [[ClassB alloc] init];
classB.player = self.player;

B 级:

.h文件

@property (nonatomic,weak) PlayerView *player;

.m 文件

-(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;
 }

}

关于ios - 在另一个 View Controller 中为 AVPlayer 创建播放/暂停按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20714781/

相关文章:

ios - 在完成之前取消 UIView animateWithDuration

ios - 如何在 Objective-C 中更新核心数据值

cocoa-touch - iPhone/iPad UIButton TitleLabel 文本未出现

ios - 导航回父 View Controller 时 UIButton 位于选项卡栏后面 - iOS

xcode - 如何快速更改按钮图像?

ios - 在 Controller 之间传递数据 - 在展开 Optional 时意外发现 nil

ios - 保存当前 GIDGoogleUser 而不是在每次启动时登录

ios - 使用核心图形绘制居中文本(移动设备)

ios - 不确定如何将我的 swift 1.2 转换为 2.0 或者我是否应该

ios - 在 watchOS2 中使用 WatchConnectivity 在 iOS 和 WatchOS 之间发送消息