tencent cloud

文档反馈

移动端播放问题

最后更新时间:2024-12-02 17:39:37
    本文主要介绍 Android 与 iOS 端几类常见问题及相应解决方案。

    Android&iOS

    出现“no v4 play info”异常

    通过 FileId 播放时,需要首先使用 Adaptive-HLS(10) 转码模板对视频进行转码,或者使用播放器签名 psign 指定播放的视频,否则可能导致视频播放失败。
    在未开启防盗链进行播放的过程中,如果出现了“no v4 play info”异常,建议您使用 Adaptive-HLS(10) 转码模板对视频进行转码,或直接获取源视频播放链接通过 URL 方式进行播放。具体操作方法参见 通过 FileId 播放(点播)

    如何提取播放器日志进行错误反馈

    播放器 SDK 默认把运行的 log 输出到本地文件,腾讯云技术支持 在帮忙定位问题时,需要这些运行 log 分析问题。

    如何拉取腾讯云的媒资进行播放

    出于安全的考虑,目前没有提供从 App 直接拉取腾讯云媒资的接口。您需要通过 App>App 服务后台>腾讯云这个路径拉取腾讯云的媒资。后台服务可以调云 API:搜索媒体信息接口,获取列表。

    与 TRTC 共存,播放视频声音变小?

    项目中 TRTC 和播放器共存的情况下,出现播放视频时声音变小的情况(被压制)。 解决方案:10.0版本以上的 SDK,在创建播放器播放视频之前,先调用 attachTRTC 方法绑定:
    // iOS端代码示例:
    [_txVodPlayer attachTRTC:trtcCloud];
    [_txVodPlayer startPlay:url]
    // Android端代码示例:
    mVodPlayer.attachTRTC(trtcCloud);
    mVodPlayer.startPlay(url);

    在手机上使用网络代理或者抓包工具导致视频播放失败怎么处理?

    手机设置 http 代理的时候,需要把 localhost 设置为绕过代理。
    Android 手机设置举例: 手机设置 > WIFI 设置 > 对应的 WIFI 链接 > 进入高级设置页 > 手动设置 http 代理下面有个绕过代理的框,填入 localhost。

    Android SDK

    播放过程中没有画面

    请检查 SurfaceView 或 TextureView 是否绑定了 TXVodPlayer 对象。

    如何减少包体积

    如果之前没有使用过9.4以及更早版本的 SDK 的 下载缓存功能(TXVodDownloadManager 中的相关接口),并且不需要在9.5及后续 SDK 版本播放9.4及之前缓存的下载文件,可以不需要该功能的 so 文件,达到减少安装包的体积,例如:在9.4及之前版本使用了 TXVodDownloadManager 类的 setDownloadPath 和 startDownloadUrl 函数下载了相应的缓存文件,并且应用内存储了 TXVodDownloadManager 回调的 getPlayPath 路径用于后续播放,这时候需要 libijkhlscache-master.so 播放该 getPlayPath 路径文件,否则不需要。可以在 app/build.gradle 中添加:
    packagingOptions {
    exclude "lib/armeabi/libijkhlscache-master.so"
    exclude "lib/armeabi-v7a/libijkhlscache-master.so"
    exclude "lib/arm64-v8a/libijkhlscache-master.so"
    }
    如果您的 App 只在中国大陆地区使用,可以打包 armeabi-v7aarm64-v8a 两个架构的 so 文件,或者只打包 jar,安装后动态下载 so 文件。具体教程请参见 如何缩减安装包

    如何减少控制台 log 输出

    可以通过设置 LogLevel,把不需要关注的 log 过滤掉:TXLiveBase.setLogLevel(TXLiveConstants.LOG_LEVEL_DEBUG)。

    当播放视频时,如果用户锁屏或将应用程序退到后台,可能会导致播放器被系统杀掉或禁止联网,如何处理?

    为了避免这种情况,可以在 App 内使用前台服务。关于如何使用前台服务,可以参考官方文档

    Android P 系统上使用播放器出现错误 "java.io.IOException: Cleartext HTTP traffic to 127.0.0.1 not permitted", 导致无法播放视频,如何处理?

    出于安全考虑,从 Android P 开始,Google 要求 App 的请求都使用加密链接。播放器 SDK 会启动一个 localsever 代理 http 请求,因此可以通过 网络安全配置 来开启允许向127.0.0.1发送 http 请求。
    1. 在项目新建 res/xml/network_security_config.xml 文件,设置网络安全性配置。
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
    <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">127.0.0.1</domain>
    </domain-config>
    </network-security-config>
    2. 在 AndroidManifest.xml 文件下的 application 标签增加以下属性。
    <?xml version="1.0" encoding="utf-8"?>
    <manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
    ... >
    ...
    </application>
    </manifest>

    iOS SDK

    集成 SDK 运行以后,运行后出现“[TXCThumbPlayer thumbPlayerBundleId] unrecognized selector”类型的 Crash?

    此问题是由于 SDK 中包含类别(category)所致,这里需要增加“-ObjC”标志位,具体步骤如下: 打开 Xcode,选择对应的 Target,选择 Build Setting,搜索 Other Link Flag 输入 -ObjC

    集成 SDK 运行以后,运行后出现“dyld[34620]: Library not loaded: @rpath/TXFFmpeg.framework/TXFFmpeg” 类型的 Crash?

    此问题是由于动态库 TXFFmpeg.framework 集成进了 Project 中,但未设置“Embed & Sign”导致:
    1. 打开 Xcode,选择对应的 Target,选择 General
    2. 选择 Frameworks,Libraries,and Embedded Content,选择 TXFFmpeg.framework,并在右侧选择 Embed & Sign。

    播放控制面板显示不出来

    播放控制面板显示是通过 MPNowPlayingInfoCenter 来显示的,通过设置 nowPlayingInfo 属性可以更新标题、图片以及设置声音大小等,具体可以参见 SuperPlayer Demo

    减少控制台 log 输出

    可以通过设置 TXLiveBase.h 中的 setLogLevel 接口来设置 LogLevel,[TXLiveBase setLogLevel:LOGLEVEL_DEBUG] ,数值越大输出的日志越少,即: 0 ( 输出所有级别的日志)~ 6(不输出任何日志),具体可以参见 TXLiveBase.h。

    遇到用 appid + fileid 播放视频失败,提示14010020错误?

    此类问题是由于文件(.mp4 或 .hls)下载失败所致,请使用10.6及以上的 SDK 进行尝试,此类问题已经在新版本进行了修复。

    播放器下载 TXVodDownloadManager 下载 m3u8 文件,TXVodDownloadDelegate 回调里没有 size 和 downloadSize 大小的数值?

    此类问题是由于 m3u8 文件的标准协议没有包含文件的大小,而每个分片的 ts 只有在请求时才能获取到大小,因此无法在下载之前准确返回文件的大小。

    在 iOS13 及以上的设备上,选择相册视频播放时提示“播放失败”?

    此类问题是由于 iOS13 及以上,相册插件访问的路径发生了变更(如:var/mobile/Containers/Data/PluginKitPlugin/tmp), 可以通过将相册数据复制到沙盒底下的临时目录来提供路径访问(例如 tmp 目录等)。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持