查询参数
更新时间: 2024/08/07 10:23:29
本文档主要介绍:
- 查询播放器当前的状态
- 查询文件的相关信息
- 查询时间的相关信息
状态相关参数
API介绍
- 播放详细状态
- 加载状态
- 初始化状态
- 播放/停止状态
API原型
objc/**
* @brief 获取当前播放状态 (只读)
*
* @discussion 共有以下4种状态,详见 NELPMoviePlaybackState。
*
* NELPMoviePlaybackStateStopped, // 停止状态 \\\n
* NELPMoviePlaybackStatePlaying, // 播放状态 \\\n
* NELPMoviePlaybackStatePaused, // 暂停状态,可调play继续播放 \\\n
* NELPMoviePlaybackStateSeeking // Seek状态 \\\n
*
* 播放状态的变换如下:\\\n
*
* 播放器调用initWithContentURL方法后处于NELPMoviePlaybackStatePaused状态,\\\n
* 调用prepareToPlay方法,如果完成对视频文件的初始化则进入NELPMoviePlaybackStatePlaying状态;\\\n
* 当调用setCurrentPlaybackTime方法时转成NELPMoviePlaybackStateSeeking状态,\\\n
* 调用pause方法转NELPMoviePlaybackStatePaused状态,调用stop方法转到NELPMoviePlaybackStateStopped状态。
*
* @return 当前播放状态
*/
@property(nonatomic, readonly) NELPMoviePlaybackState playbackState;
objc/**
* @brief 获取当前加载状态 (只读)
*
* @discussion 共有以下3种加载状态,详见 NELPMovieLoadState
*
* NELPMovieLoadStatePlayable = 1 << 0, // 在该状态下,播放器初始化完成,可以播放,若shouldAutoplay 设置成YES,播放器初始化完成后会自动播放 \\\n
* NELPMovieLoadStatePlaythroughOK = 1 << 1, // 在该状态下,在网络不好的情况下缓冲完成,可以播放 \\\n
* NELPMovieLoadStateStalled = 1 << 2, // 在播放过程中网络不好需要缓冲数据的时候播放会自动暂停 \\n
*
* 加载状态的变换如下:\\\n
* 调用prepareToPlay方法,当视频文件初始化完成后,播放器会收到NELivePlayerLoadStateChangedNotification通知,此时的加载状态为 NELPMovieLoadStatePlayable \\\n
* 当播放器需要缓冲的时候,缓冲开始时,播放会暂停,此时播放器会收到NELivePlayerLoadStateChangedNotification通知,此时的加载状态为 NEPMovieLoadStateStalled \\\n
* 当缓冲结束时,播放会继续,此时播放器会收到NELivePlayerLoadStateChangedNotification通知,此时的加载状态为 NELPMovieLoadStatePlaythroughOK
*
* @return 当前加载状态
*/
@property(nonatomic, readonly) NELPMovieLoadState loadState;
/**
* @brief 当前视频文件是否完成初始化(只读)
*
* @discussion
*
* 调用prepareToPlay方法后,如果播放器完成视频文件的初始化,会发送NELivePlayerDidPreparedToPlayNotification通知,并将isPreparedToPlay置为YES。
*
* @see prepareToPlay
*/
@property(nonatomic, readonly) BOOL isPreparedToPlay;
objc/**
* @brief 是否正在播放
* @return YES:正在播放,NO:不在播放
*/
- (BOOL)isPlaying;
参数介绍
参数 | 类型 | 说明 |
---|---|---|
playbackState | NELPMoviePlaybackState | 播放器内部的各种详细状态 |
loadState | NELPMovieLoadState | 播放器的加载状态 |
isPreparedToPlay | BOOL | 资源初始化状态 |
isPlaying | BOOL | playbackState 的简单版,只标志是否在播放 |
示例
无
文件信息相关参数
API介绍
- 视频文件的相关信息
- 音频文件的相关信息
API原型
objc/**
* @brief 获取视频信息
*
* @param videoInfo 保存视频信息
*
* @discussion
* 调用prepareToPlay方法,播放器发出NELivePlayerDidPreparedToPlayNotification通知后,调用该方法才能获取到有效的视频信息。
* 注意:其中帧率和码率都是从视频头中读取,若头中没有该信息,则返回0.
*
* @return 无
*/
- (void)getVideoInfo :(NELPVideoInfo *)videoInfo;
/**
* @brief 获取音频信息
*
* @param audioInfo 保存音频信息
*
* @discussion
* 调用prepareToPlay方法,播放器发出NELivePlayerDidPreparedToPlayNotification通知后,调用该方法才能获取到有效的音频信息。
*
* @return 无
*/
- (void)getAudioInfo :(NELPAudioInfo *)audioInfo;
参数介绍
参数 | 类型 | 说明 |
---|---|---|
videoInfo | NELPVideoInfo | 视频信息 |
audioInfo | NELPAudioInfo | 音频信息 |
示例
objc//视频信息
NELPVideoInfo info;
memset(&info, 0, sizeof(NELPVideoInfo));
[self.liveplayer getVideoInfo:&info];
objc//音频信息
NELPAudioInfo audioInfo;
memset(&audioInfo, 0, sizeof(NELPAudioInfo));
[self.liveplayer getAudioInfo:&audioInfo];
特殊说明
- 一定要在收到NELivePlayerDidPreparedToPlayNotification通知后再获取,否则会获取不到。
时间信息相关参数
API介绍
- 获取视频时长
- 获取当前播放时间
- 获取当前的缓冲时间
API原型
objc/**
* @brief 获取多媒体文件总时长(单位: 秒) (只读)
*
* @discussion
* 调用prepareToPlay方法后,不能立即获得duration值。只有在播放器发送NELivePlayerDidPreparedToPlayNotification通知后,获取的duration值才有效,\\\n
* 这也意味着isPreparedToPlay值为YES时,duration值才有效。\\\n
*
* 如果播放的是直播视频,则duration值为0。
*
* @return 多媒体文件总时长(单位: 秒)
*
* @see isPreparedToPlay
*/
@property(nonatomic, readonly) NSTimeInterval duration;
objc/**
* @brief 设置当前播放时间点(用于seek操作)以及获取当前播放的时间点
*
* @param currentPlaybackTime 当前要播放的时间点(单位:秒)
*
* @discussion
* 需要在播放器发送NELivePlayerDidPreparedToPlayNotification通知后,才能调用该set方法设置到某一时间点播放,\\\n
* 此时isPreparedToPlay的值为 YES
*
* @return get操作返回的是当前播放的时间点
*
* @see isPreparedToPlay
*/
@property(nonatomic) NSTimeInterval currentPlaybackTime;
objc/**
* @brief 获取当前可播放的视频时长(单位:秒) (只读)
*
* @discussion 当播放网络视频时,该值表示已经缓冲的视频的最大时长,若此时网络端开,则只能播放到该时刻为止。
*
* @return 当前缓冲时长(单位:秒)
*/
@property(nonatomic, readonly) NSTimeInterval playableDuration;
参数介绍
参数 | 类型 | 说明 |
---|---|---|
duration | NSTimeInterval | 视频时长 |
currentPlaybackTime | NSTimeInterval | 当前播放的时间 |
playableDuration | NSTimeInterval | 缓冲时长 |
特殊说明
- 当前播放时间和缓冲时长内部更新,外部需要开启定时器轮询,并根据该值更新UI。
播放的实时信息相关参数
API介绍
- 实时信息的获取,包括音/视频接收码率,接收帧率,播放帧率,音/视频缓存时长,音/视频缓存大小,音视频播放时间差
API原型
/**
@brief 获取文件播放的实时信息
@return 信息结构体
*/
- (NELivePlayerRealTimeInfo *)getMediaRealTimeInfo;
返回参数介绍
参数 | 类型 | 说明 |
---|---|---|
videoReceiveBitrate | NSTimeInterval | 视频接收的码率 |
videoReceiveFramerate | NSTimeInterval | 视频接收的楨率 |
videoPlayFramerate | NSTimeInterval | 视频播放的楨率 |
videoCacheDuration | NSTimeInterval | 视频缓存的时长 |
videoCacheBytes | NSTimeInterval | 视频缓存的大小 |
audioReceiveBitrate | NSTimeInterval | 音频接收的码率 |
audioCacheDuration | NSTimeInterval | 音频缓存的时长 |
audioCacheBytes | NSTimeInterval | 音频缓存的大小 |
AVPlayTimeDifference | NSTimeInterval | 音频和视频的播放时间差 |
特殊说明
- 需要收到preparedToPlay通知之后再查询
此文档是否对你有帮助?