Skip to content

messagechannel

dengchu817 edited this page Feb 2, 2018 · 13 revisions

消息通道

播放SDK提供了如下的messageDataBlock属性,使用回调的方式将视频流中除了音视频之外的另一种可以称之为消息的数据交给外部处理

接口说明

/**
 * 设置监听回调
 */
public void setOnMessageListener(IMediaPlayer.OnMessageListener listener);

/**
  * 回调接口定义
  */
public interface IMediaPlayer {
       ...
       interface OnMessageListener {
                 void onMessage(IMediaPlayer mp, Bundle bundle);
          }
       ...
}

使用示例

   mVideoView.setOnMessageListener(new IMediaPlayer.OnMessageListener() {
            @Override
            public void onMessage(IMediaPlayer mp, Bundle bundle) {
                 Log.e(TAG, bundle.toString());
            }
        })

消息的来源

  1. 推流SDK向流中写入的自定义消息,此消息数据在rtmp流中已符合标准的形式作为区别与音视频数据的另外一种数据格式存在,此时onMessage回调的bundle为字典内容与推流时设置的内容相同

  2. 2.2.1版本中新增了对H264视频数据中SEI信息的解析,将用户自定义的SEI数据通过消息通道的方式交给外部处理,此时onMessage回调的bundle包含两组key-value,key为UUID和Message,value均为字符串格式,UUID的value对应128位UUID转为16进制显示的字符串表示,Message对应的value为自定义SEI信息内容,如果内容不是字符串格式,这里可能会有问题

Clone this wiki locally