Skip to content

device_config

zanxiaofei edited this page May 26, 2017 · 11 revisions

硬编

音频和视频编码时有两种选择:软件编码和硬件编码。软编的效果更好但会占用更多的资源,硬编的效果差一些但占用的资源较少。由于Android设备和ROM的多样性,并非每一台设备都直接支持硬编。

硬编白名单

针对Android机型丰富、ROM较多的情况,为提升金山云SDK用户在推流时使用硬编的成功率和覆盖率,金山云对500多个Android设备进行测试后,收集形成硬编白名单,白名单中包含了所有经过验证支持硬编的机型和对应的Android系统版本。

为了方便客户使用,金山云将白名单移至服务端并且在推流SDK中提供接口来支持白名单服务。
用户可通过白名单获取到当前机型是否支持硬编,借此来提升硬编的成功率和覆盖率。

当前只提供了硬编h264的支持情况,后续我们会进一步丰富白名单内容
如果您的设备不在表中,您可以联系并告知我们,和我们一起丰富白名单内容

1. 技术方案

图片名称

1.1 请求规则

图片名称

1.2 请求返回的设备信息

图片名称

1.3 接口说明

  1. init
    DeviceInfoTools的初始化,建议在Application初始化的时候调用,接口会发起服务端请求(参考请求规则)
public class DemoApplication extends Application {
    @Override
    public void onCreate() {

        super.onCreate();
        //初始化本地存储,若本地无信息或者信息已经过期,会向服务器发起请求
        DeviceInfoTools.getInstance().init(this);
    }
}
  1. getDeviceInfo
    获取设置信息,若服务器请求未返回,请求失败,服务器白名单中没有设备,都会返回默认值,参考请求规则
        DeviceInfo deviceInfo = DeviceInfoTools.getInstance().getDeviceInfo();
        if (mDeviceInfo != null) {
                if (mDeviceInfo.encode_h264 == DeviceInfo.ENCODE_HW_SUPPORT) {
                    //支持硬编,建议使用硬编
                    Toast.makeText(this, "该设备支持h264硬编,建议您使用硬编", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(this, "该设备可能不在硬编白名单中\n或者不支持硬编\n或者服务器还未返回" +
                            "\n如果支持硬编,欢迎一起更新白名单", Toast.LENGTH_SHORT).show();
                }
        }

2. 扩展白名单

如果您的设备不在表中,您可以联系并告知我们,我们会在1~2个工作日内将您的信息加入白名单中。
您需要提供如下信息用与录入白名单

  • 手机品牌:例如小米、华为
  • 手机型号:需要Build.MODEL的准确值
  • 手机系统版本:需要Build.VERSION.RELEASE的准确值
  • 是否支持h264硬编:支持或者不支持
    您可以直接下载硬编白名单扩展表并填充您的信息提供给我们
Clone this wiki locally