首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VLCKit:可可应用程序中的VLCMediaPlayerDelegate

VLCKit:可可应用程序中的VLCMediaPlayerDelegate
EN

Stack Overflow用户
提问于 2014-11-06 00:06:22
回答 1查看 1.9K关注 0票数 4

我正在尝试为MacOSX10.10开发一个Cocoa应用程序,它在VLCKit中实现了一些视频流。现在:

  1. 我编译了.framework库,并在Xcode中导入了它。
  2. 我在我的中添加了一个自定义视图,并将其设置为VLCVideoView

  1. 在我的ViewController.h中,我实现了VLCMediaPlayerDelegate以接收来自播放器的通知

这是我的密码:

viewController.h

代码语言:javascript
复制
#import <Cocoa/Cocoa.h>
#import <VLCKit/VLCKit.h>

@interface ViewController : NSViewController<VLCMediaPlayerDelegate>

@property (weak) IBOutlet VLCVideoView *_vlcVideoView;

//delegates
- (void)mediaPlayerTimeChanged:(NSNotification *)aNotification;

@end

viewController.m

代码语言:javascript
复制
#import "ViewController.h"

@implementation ViewController
{
    VLCMediaPlayer *player;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [player setDelegate:self];

    [self._vlcVideoView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable];
    self._vlcVideoView.fillScreen = YES;

    player = [[VLCMediaPlayer alloc] initWithVideoView:self._vlcVideoView];

    NSURL *url = [NSURL URLWithString:@"http://MyRemoteUrl.com/video.mp4"];

    VLCMedia *movie = [VLCMedia mediaWithURL:url];
    [player setMedia:movie];
    [player play];
}

- (void)mediaPlayerTimeChanged:(NSNotification *)aNotification
{
    //Here I want to retrieve the current video position.
}

@end

视频启动和播放正确。但是我不能让代表去工作。我哪里错了?

以下是我的问题:

  1. 如何设置委托以接收有关当前播放机时间的通知?
  2. 我怎么读NSNotification?(我不太习惯Obj)

谢谢您的任何答复!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-06 10:41:47

我成功了!

  1. 如何设置委托以接收有关当前播放机时间的通知?我不得不在NSNotificationCenter.中添加一个观察者

下面是代码:

代码语言:javascript
复制
- (void)viewDidLoad
{
   [super viewDidLoad];

   [player setDelegate:self];
   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mediaPlayerTimeChanged:) name:VLCMediaPlayerTimeChanged object:nil];
}
  1. 我怎么读NSNotification?我必须在通知中检索VLCMediaPlayer对象。

代码:

代码语言:javascript
复制
- (void)mediaPlayerTimeChanged:(NSNotification *)aNotification
{
   VLCMediaPlayer *player = [aNotification object];
   VLCTime *currentTime = player.time;
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26769546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档