Ios 在另一个视图控制器中为AVPlayer创建播放/暂停按钮
我正在为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
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中创建了该播放器的实例。我试图让在视图中创建的播放器播放并暂停