查询参数

更新时间: 2021/11/04 06:15:20

本文档主要介绍:

  • 查询播放器当前的状态
  • 查询文件的相关信息
  • 查询时间的相关信息

状态相关参数

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通知之后再查询
此文档是否对你有帮助?
有帮助
去反馈
  • 状态相关参数
  • API介绍
  • API原型
  • 参数介绍
  • 示例
  • 文件信息相关参数
  • API介绍
  • API原型
  • 参数介绍
  • 示例
  • 特殊说明
  • 时间信息相关参数
  • API介绍
  • API原型
  • 参数介绍
  • 特殊说明
  • 播放的实时信息相关参数
  • API介绍
  • API原型
  • 返回参数介绍
  • 特殊说明