Android播放视频——VDPlayerSDK的使用(二)

本文介绍VDPlayerSDK在实现横竖屏播放过程中遇到的问题及解决方案,包括如何配置不同播放模式及解决横屏点击事件失效等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天写了一下VDPlayerSDK的导入方法,现在再说一下导入之后使用的一些问题。

一下问题可能你不会遇到,但是遇到的朋友可以参考一下。
Demo(https://github.com/Mr-Sang/VDPlayerSDKDemo )中的实例写的是

    <com.sina.sinavideo.sdk.VDVideoView
        android:id="@+id/vd_video_view"
        android:layout_width="match_parent"
        android:layout_height="220dp"
        android:background="#fff"
        app:layerAttrs="@array/only_horzion">
    </com.sina.sinavideo.sdk.VDVideoView>

这个是只有横屏,也就是只是横向全屏播放。
我们可以这样改:

    <com.sina.sinavideo.sdk.VDVideoView
        android:id="@+id/vd_video_view"
        android:layout_width="match_parent"
        android:layout_height="220dp"
        android:background="#fff"
        app:layerAttrs="@array/sv_videoview_layers2">
    </com.sina.sinavideo.sdk.VDVideoView>
app:layerAttrs="@array/sv_videoview_layers2"

定义的是一个简单的播放器 包括横屏、竖屏、广告层。
(PS:还有其他很多模式 大家可以到attrs.xml中查看自己需要)

这时候你会发现sv_videoview_layers2飘红。需要你手动将导入的SDK中values中的attrs.xml复制到自己的工程目录下,然后复制相应layout文件,不需要的可以直接删除。

运行,你会发现竖屏没有任何问题,但是横屏的时候不能相应点击事件。
解决办法:
找到attrs.xml中:

<!-- 精简播放器例子,包含一个基本的播放器以及一个广告层 -->
    <array name="sv_videoview_layers2">
        <item>@array/simple_ui_layer_controllayer</item>
        <item>@array/simple_ui_ad_controllayer</item>
    </array>

注意

<item>@array/simple_ui_ad_controllayer</item>

是修改后的。
再运行 就没有问题了。

目前只发现这些问题,大家有其他问题欢迎提出。

作者wanliyang1990,源码wlmedia,1、UsageGradle: implementation 'ywl.ywl5320:wlmedia:1.0.0-beta17'2、实例图片播放视频播放 byte[](如:标准的 h264 h265 等)播放音乐竖屏播放(自动保持宽高比)横屏播放(自动保持宽高比)3、调用方式配置 NDK 编译平台:defaultConfig {     ...     ndk {         abiFilter("arm64-v8a")         abiFilter("armeabi-v7a")         abiFilter("x86")         abiFilter("x86_64")     }     ... }基本权限接入代码(SDK API level:28)// WlSurfaceView 一般播放使用// WlTextureView 需要做透明、移动、旋转等使用WlMedia wlMedia = new WlMedia();// 可支持多实例播放(主要对于音频,视频实际验证效果不佳) wlMedia.setPlayModel(WlPlayModel.PLAYMODEL_AUDIO_VIDEO);//声音视频播放 wlMedia.setCodecType(WlCodecType.CODEC_MEDIACODEC);//优先使用硬解码 wlMedia.setMute(WlMute.MUTE_CENTER);//立体声 wlMedia.setVolume(80);//80%音量 wlMedia.setPlayPitch(1.0f);//正常速度 wlMedia.setPlaySpeed(1.0f);//正常音调 wlMedia.setRtspTimeOut(30);//网络流超时时间 wlMedia.setShowPcmData(true);//回调返回音频 pcm 数据 wlMedia.setSampleRate(WlSampleRate.RATE_44100);//设置音频采样率为指定值(返回的 PCM 就是这个采样率) wlSurfaceView.setWlMedia(wlMedia);//给视频 surface 设置播放器 //异步准备完成后开始播放 wlMedia.setOnPreparedListener(new WlOnPreparedListener() {         @Override         public void onPrepared() {         // wlMedia.setVideoScale(WlScaleType.SCALE_16_9);//设置 16:9 的视频比例             wlMedia.start();//开始播放             double duration = wlMedia.getDuration();//获取时长         }     }); //设置 url 源 wlMedia.setSource("/storage/sdcard1/精灵宝可梦:就决定是你了.720p.国日粤三语.BD 中字[最新电影 www.66ys.tv].mp4"); wlMedia.prepared();//异步准备
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值