文档首页 > > 推流SDK> Android 推流SDK> 开发前准备

开发前准备

分享
更新时间: 2019/08/21 GMT+08:00

获取推流地址

软硬件环境配置要求

推流SDK需要集成到APP工程中,单独的SDK对软硬件环境没有特别的要求。

  • 准备Android Studio或者Eclipse集成开发环境,推荐使用Android Studio。
  • 准备Android运行环境,Android 5.0及以上的设备,API 21。
  • 支持的终端CPU架构:armV7。

SDK集成

  • 摄像头推流

    若您需要开发摄像头推流功能,请参照如下步骤集成SDK。

    1. 解压已获取的Android推流SDK包。

      “livepushersdk\huaweicloud-sdk-android-livepusher-1.1.0”目录下有如下文件。

    2. 将jar包、aar包和so库文件,拷贝到APP工程对应目录下。

    3. 在build.gradle中android栏加入libs目录。
          repositories {
              flatDir {
                  dirs './libs'
              }
          }
    4. 在app目录下的build.gradle文件中添加配置与依赖。
      dependencies {    
         compile fileTree(include: ['*.jar'], dir: 'libs')    
         androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
              exclude group: 'com.android.support', module: 'support-annotations'    
          })    
          compile fileTree(include: ['*.jar'], dir: '../../../../lib/android_jar')
          compile 'com.squareup.okhttp3:okhttp:3.8.0'
          compile(name: 'HwLivePushSDK-release', ext: 'aar')
          compile 'com.android.support:design:25.1.0'
          compile 'com.android.support:appcompat-v7:25.1.0'
          compile 'com.android.support.constraint:constraint-layout:1.0.2'
          compile 'com.android.support:recyclerview-v7:25.1.0'
          compile 'com.google.code.gson:gson:2.7'
          compile 'com.github.bumptech.glide:glide:4.0.0'
          compile 'com.android.support:support-v4:25.3.1'
          compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.2'
          testCompile 'junit:junit:4.12'
      }
    5. 选择Sync Project With Gradle Files, 完成SDK集成。
  • 录屏直播

    若您需要开发录屏直播功能,请参照如下步骤集成SDK。

    1. 解压已获取的Android推流SDK包。

      “livepushersdk\huaweicloud-sdk-android-livepusher-1.1.0”目录下有如下文件。

    2. 将HwLivePushSDK-release.aar文件,拷贝到APP工程对应目录下。

    3. 在build.gradle中android栏加入libs目录。
          repositories {
              flatDir {
                  dirs './libs'
              }
          }
    4. 在APP目录下的build.gradle文件中添加配置与依赖。
      dependencies {    
         compile fileTree(include: ['*.jar'], dir: 'libs')    
         androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
              exclude group: 'com.android.support', module: 'support-annotations'    
          })    
      implementation 'com.squareup.okhttp3:okhttp:3.8.0'
      implementation 'com.google.code.gson:gson:2.7'
      implementation (name: 'HwLivePushSDK-release', ext: 'aar')
      }
    5. 选择Sync Project With Gradle Files, 完成SDK集成。

配置APP权限

开发不同功能,涉及的APP权限配置是有差异的,请根据实际需求选择配置。

  • 摄像头推流

    您需要同时配置如下两种APP权限申请。

    • 在AndroidManifest.xml文件中申请。
          <uses-permission android:name="android.permission.CAMERA" />
          <uses-permission android:name="android.permission.RECORD_AUDIO" />
          <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
          <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
          <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
          <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    • 在程序运行中申请APP权限,申请代码如下所示。
      private void checkAllPermission() {
              if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                  if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)) {
                      if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, android.Manifest.permission.RECORD_AUDIO)) {
                          if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                              if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE)) {
                                  if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_PHONE_STATE)) {
                                      mPermissionGranted = true;
                                  } else {
                                      requestPermissions(new String[]{android.Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE_PERMISSION_CODE);
                                  }
                              } else {
                                  requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_READ_EXTERNAL_STORAGE_PERMISSION_CODE);
                              }
                          } else {
                              requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_EXTERNAL_STORAGE_PERMISSION_CODE);
                          }
                      } else {
                          requestPermissions(new String[]{android.Manifest.permission.RECORD_AUDIO}, REQUEST_RECORD_AUDIO_PERMISSION_CODE);
                      }
                  } else {
                      requestPermissions(new String[]{android.Manifest.permission.CAMERA}, REQUEST_CAMERA_PERMISSION_CODE);
                  }
              } else {
                  mPermissionGranted = true;
              }
          }
  • 录屏直播

    您需要同时配置如下两种APP权限申请。

    • 在AndroidManifest.xml文件中申请。
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
          <uses-permission android:name="android.permission.RECORD_AUDIO"/>
          <uses-permission android:name="android.permission.INTERNET"/>
          <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    • 在程序运行中申请APP权限,申请代码如下所示。
          private void checkAllPermission() {
              //获取录音和写文件权限
              if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                  if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, android.Manifest.permission.RECORD_AUDIO)) {
                      mPermissionGranted = true;
                      onClick(clickedView);
                  } else {
                      ActivityCompat.requestPermissions(this,
                              new String[] {Manifest.permission.RECORD_AUDIO}, AUDIO_REQUEST_CODE);
                  }
              } else {
                  ActivityCompat.requestPermissions(this,
                          new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_REQUEST_CODE);
              }
          }

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区