[bilibili/ijkplayer][iOS] 是否支持AirPlay投影到机顶盒?

2024-08-20 299 views
0

ijkplayer 目前版本是否支持AirPlay呢?

回答

8

首先AirPlay是苹果公司的技术,现行的主流的苹果设备都支持(iOS 5开始支持),你要使用AirPlay投影到电视机,这个要求你的电视机或者机顶盒要支持AirPlay,目前我所知道的乐视、小米的机顶盒是支持的,ios中AirPlay的功能请查看MPVolumeView的API

8

@lm3515 你好,我将利用MPVolumeView投影视频至airplay模拟器(Reflector 2)只有声音没有图像,模拟器显示是音频格式。如何将视频也传过去呢,ijkplayer需要做额外的属性设置吗,谢谢!

4

@zhangferry MPVolumeView 是系统封装的组件,本身就能传输视频跟音频。不知道你用AirPlay投影的是什么协议的流

9

m3u8格式的视频。但是我看MPVolumeView的API很少,我也并未指定传输视频还是音频,好像也不能在里面直接设置。在视频播放时,我选择airplay设备时,只有声音过去了,没有视频

9

@zhangferry 应该跟你的格式有关,Airplay投影如果是视频一般会调用系统的视频播放器MPMoviePlayerController进行播放,MPMoviePlayerController解析m3u8这个我没有测试过,不过建议你用http流进行测试,个人初步认为是由于系统的视频播放器无法解析导致的,具体原因有待验证。

0

@lm3515 跟视频格式没关系刚才测了一条视频http://7xqhmn.media1.z0.glb.clouddn.com/femorning-20161106.mp4投到airplay还是只有声音没有视频,MPVolumeView设置如下:

_airPlayControl = [[MPVolumeView alloc] initWithFrame:(CGRect) { .size = CGSizeMake(38.f, 22.f) }];
_airPlayControl.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
_airPlayControl.contentMode = UIViewContentModeCenter;
_airPlayControl.showsRouteButton = YES;
_airPlayControl.showsVolumeSlider = NO;
[self.bottemView addSubView:_airPlayControl];

之前这些视频使用AVPlayer进行播放的,airplay都没问题。后来更换为ijkplayer,投过去都是只有声音没有影像。给我的感觉是ijkplayer有哪个设置控制着,没有调对,但是我尝试了很多次也没有解决这个问题

8

@zhangferry ijkplayer结合AirPlay这个还没尝试过,暂时没办法给你答案,不过给您一个小小的建议,如果不是做直播建议用系统的播放器如:AVPlayer,ijk的内存占用率挺高的,这仅仅是个建议。

1

@lm3515 嗯嗯,以后会加直播所以提前更换了播放器,还是多谢哈

6

我也碰到这个问题,使用IJKFFMoviePlayerController,开启airplay,在电视上只听到声音,没有画面,使用IJKAVMoviePlayerController和IJKMPMoviePlayerController,开启airplay,都能完美支持,现在也不太清楚问题所在 https://github.com/Bilibili/ijkplayer/issues/2926

6

@Nimger 我搞了一周放弃了,应该确实不可以。IJKAVMoviePlayerController和IJKMPMoviePlayerController这两个是基于AVPlayer的,系统框架肯定支持

2

@zhangferry 我需要用到IJKFFMoviePlayerController的功能,比如设置头部,多种解码,其他两个不支持,只能用IJKFFMoviePlayerController,但是没想到不支持airplay,有点遗憾