我正在为 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/