视频App如何使用无线传输服务获得更好的播放体验

1 前言

华为公司经过多年的发展,在网络连接,固网,有线,无线等部分积累了深厚的经验。无线传输服务就是将这些经验转化为能力体现在手机侧,更好的展现华为手机的优势。
网络最重要的就是稳定,快速,低时延。视频App重要的也是保证用户更好的观看体验,对网络的要求也就更高。

本文将以视频播放App为例,介绍基本的应用场景和实现方式,以帮助用户快速了解如何使用无线传输服务的相关功能。

2 名词介绍

在下面的介绍中可能会用到一些网络侧常用的参数,含义如下:

QoE:Quality of Experience,用户体验质量。用户对业务使用的最终感受。在这里主要指体现网络情况的抖动,时延等指标。

WiFi切片:对设备上不同的服务设置不同优先级,并按优先级进行相关数据分组。

3 业务背景介绍

现在各大运营商都开通了针对各种视频软件(如腾讯视频,优酷视频,抖音等)的大流量套餐,因此很多人都会在上班,旅游的过程中通过它们观看视频。而观看视频过程中最担心的就是网络不稳定造成的卡顿,分辨率降低等情况,严重影响观赏体验。如果手机能够最大限度保障视频的流畅度,并且及时选择更优的网络,就能够让用户有更好的观赏体验。如果能提前知道网络的变化,岂不是能更好的应对可能的问题嘛。

4 关键流程

4.1 集成无线传输服务

集成无线传输服务的基本操作可以参考如下文档进行操作:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/dev-process-0000001051069902-V5?ha_source=hms1

4.2 如何保障视频质量

视频软件的诉求是什么样的?

首先,网络速度越快越好,速度越快,视频质量越高。

网络要保持稳定,保证持续的观影效果。

当网络状态有波动时,可以通过缓存功能对网络进行平滑。

当网络不允许时,降低分辨率优先保障连续性。

下面我们看一下,无线传输服务如何从各个角度提升视频软件的效果。

4.2.1 网络优选

首先确认一点,无线传输服务并不能对您的网络进行加速。但是它可以在网络状态不稳定,不足以支撑应用要求时,将网络切换到可以满足要求的网络中(如果存在)。

比如用户当前使用WIFI网络,当远离WIFI区域时,网络质量逐渐下降。但是如果用户WIFI没有中断,系统会继续使用该网络,导致视频播放出现异常。

如果可以分析当前网络状态,并且及时切换到蜂窝网络,则可以更好的进行观影。

无线传输服务提供了基于QoE的网络优选功能。通过主动反馈的方式,向App提供网络状态的回调。App可以通过当前的QoE状态进行相应操作(切换网络,增加缓存等)。

在这里插入图片描述

  1. 注册服务
public class NetworkPredictActivity extends AppCompatActivity {
   
    private NetworkQoeClient networkQoeClient;
    private IQoeService qoeService;
    private ServiceConnection mSrcConn = new ServiceConnection() {
   
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
   
            qoeService = IQoeService.Stub.asInterface(service);
        }
 
        @Override
        public void onServiceDisconnected(ComponentName name) {
   
            qoeService = null; 
        }
    };
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        networkQoeClient = WirelessClient.getNetworkQoeClient(NetworkPredictActivity.this);
        if (networkQoeClient != null) {
   
            networkQoeClient.getNetworkQoeServiceIntent()
                .addOnSuccessListener(new OnSuccessListener<WirelessResult>() {
   
                    @Override            
                    public void onSuccess(WirelessResult wirelessResult) {
   
                        Intent intent = wirelessResult.getIntent();
                        if (intent == null) {
   
                            return; 
                        }
 
                        NetworkPredictActivity.this.bindService(intent, mSrcConn, Context.BIND_AUTO_CREATE); 
                    }        
                })
                .addOnFailureListener(new OnFailureListener() {
   
                    @Override 
             
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值