b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Android 播放端 SDK

电脑杂谈  发布时间:2019-08-11 08:01:47  来源:网络整理

七牛云开发者中心_七牛云存储 提供什么接口_七牛云存储 备案

为了确保正常使用 SDK ,请在 proguard-rules.pro 文件中添加以上代码:

-keep class com.pili.pldroid.player.** { *; }
-keep class com.qiniu.qplayer.mediaEngine.MediaPlayer{*;}

首先,下载最新版本的 PLDroidPlayer SDK

SDK 主要包括 demo 代码、 PLDroidPlayer jar 包,还有 sdk 依赖的动态库文件。

将 SDK 文件导出您的工期:

PLDroidPlayer SDK 支持 armv5、armv7、arm64 和 x86 多种 CPU 架构,当前市场上主流型号的 CPU 都采用的是 armv7 架构。您可以按照兼容性的才能,将 release 目录下的动态库,拷贝到您的工期对应的目录下,例如:armeabi-v7a 目录下的 so 则拷贝到工程的 jniLibs/armeabi-v7a 目录下。

因为 Android 7.0 使用 BoringSSL 替换了 OpenSSL,一些依赖功能内建 OpenSSL 的流程在一些 7.0+ 的 ROM 里可能会崩溃。如果您的使用 targetSdkVersion >= 24,所以强烈推荐将 libopenssl.so 加入至 jniLibs 目录。

同样,还需要将 pldroid-player-x.x.x.jar 包也拷贝到工程的 libs 目录下,具体可以参考 SDK 包含的 demo 工程,集成后的工期实例如下:

双击打开您的工期目录下的 build.gradle,保证已经添加了如下依赖,如下所示:

dependencies {
    compile files('libs/pldroid-player-x.x.x.jar')
}

在 app/src/main 目录中的 AndroidManifest.xml 中提高如下 uses-permission 声明

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

PLDroidPlayer SDK 提供的 PLVideoView 类和 PLVideoTextureView 类可以快速实现带图标的播放器功能,这些的插口与 Android 官方的 VideoView 类基本维持一致,其外部封装了 PLMediaPlayer 类所提供的播映系统。

你们的应用方式基本相似,惟一的差异在于 PLVideoView 类使用了 SurfaceView 来完成视频镜头的渲染,而 PLVideoTextureView 采用了 TextureView 完成视频镜头的渲染 ,所以,在这里合并在一起来介绍。

因为采用 PLVideoView 的话,布局如下:

<com.pili.pldroid.player.widget.PLVideoView
        android:id="@+id/PLVideoView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" />

因为采用 PLVideoTextureView 的话,布局如下:

<com.pili.pldroid.player.widget.PLVideoTextureView
        android:id="@+id/PLVideoTextureView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" />

因为采用 PLVideoView 的话,初始化的方式如下:

PLVideoView mVideoView = (PLVideoView) findViewById(R.id.PLVideView);

因为采用 PLVideoTextureView 的话,初始化的方式如下:

PLVideoTextureView mVideoView = (PLVideoTextureView) findViewById(R.id.PLVideoTextureView);

Demo 里面提供了一个播放控制器示例,MediaController,您可以随意修改满足多样化需求,将该控制器控件关联到 PLVideoView 或者 PLVideoTextureView 的方式如下:

MediaController mMediaController = new MediaController(this);
mVideoView.setMediaController(mMediaController);

PLVideoView 和 PLVideoTextureView 提供了设置加载的插口,在播放器进入缓冲状态时,自动显示加载页面,缓冲结束后,自动隐藏加载页面七牛云开发者中心,增设方式如下:

View loadingView = findViewById(R.id.LoadingView);
mVideoView.setBufferingIndicator(loadingView);

该 loadingView 可以是任意的 Android View 视图对象。

PLVideoView 和 PLVideoTextureView 都提供了多样的播映状态消息回调,您可以借助 setXXXListener 接口实现这些传闻状态的获取,实例如下:

七牛云存储 提供什么接口_七牛云开发者中心_七牛云存储 备案

public class PLVideoViewActivity extends Activity implements
        PLPreparedListener,
        PLOnInfoListener,
        PLOnCompletionListener,
        PLOnVideoSizeChangedListener,
        PLOnErrorListener {
...
    mVideoView.setOnPreparedListener(this);
    mVideoView.setOnInfoListener(this);
    mVideoView.setOnCompletionListener(this);
    mVideoView.setOnVideoSizeChangedListener(this);
    mVideoView.setOnErrorListener(this);
...

关于各个传闻状态的具体含义,将在 章节详细说明。

PLVideoView 和 PLVideTextureView 提供了这些场景预览模式,包含:原始尺寸、适应屏幕、分屏铺满、16:9、4:3 等,增设方式如下:

mVideoView.setDisplayAspectRatio(PLVideoView.ASPECT_RATIO_ORIGIN);
mVideoView.setDisplayAspectRatio(PLVideoView.ASPECT_RATIO_FIT_PARENT);
mVideoView.setDisplayAspectRatio(PLVideoView.ASPECT_RATIO_PAVED_PARENT);
mVideoView.setDisplayAspectRatio(PLVideoView.ASPECT_RATIO_16_9);
mVideoView.setDisplayAspectRatio(PLVideoView.ASPECT_RATIO_4_3);

PLVideTextureView 还支持镜头旋转,支持播放场景以 0度,90度,180度,270度旋转,增设方式如下:

mVideoView.setDisplayOrientation(90); // 旋转90度

PLVideTextureView 还支持镜头的镜像变换,增设方式如下:

mVideoView.setMirror(true); 

这是最重要的环节,在读取播放器的控制接口之前,必须先设置好播放地址。

传入播放地址,可以是 /path/to/local.mp4 本地文件绝对路径,或 HLS URL,或 RTMP URL

mVideoView.setVideoPath(videoPath);
/**
 * Sets video path.
 *
 * @param path the path of the video.
 */
public void setVideoPath(String path)
/**
 * Sets video path
 * @param path path of the video
 * @param headers http headers
 */
public void setVideoPath(String path, Map<String, String> headers)

因为早已关联了 MediaController,可以直接通过该控件实现播放过程的控制,包含:暂停、继续、停止等,其实,您也可以借助 PLVideoView 提供的插口自行进行播放过程的控制,相关字段如下:

mVideoView.start();
mVideoView.pause();
mVideoView.stopPlayback();

一个常见的画面是多个播放器实例并排播放,PLVideoTextureView 对此情景进行了专门优化,可以通过设置 PLVideoTexureView.setSplitMode() 进行处理。目前提供 PLVideoTextureView.SPLIT_MODE_VERTICAL 与 PLVideoTextureView.SPLIT_MODE_HORIZONTAL 两种。若需要取消并排模式,则需读取 PLVideoTextureView.disableSplitMode()。

/**
 * Set split mode
 * @param mode the mode
 * @param preferredSplitWidth preferred width, in px
 * @param preferredSplitHeight preferred height, in px               
 */
public void setSplitMode(int mode, int preferredSplitWidth, int preferredSplitHeight)
/**
 * Disable split mode
 */
public void disableSplitMode() 


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-118828-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...