首页 > 编程知识 正文

魅族影视大全(百度影棒3s精简版刷机包)

时间:2023-05-04 15:26:13 阅读:68693 作者:565

Vitamio是安卓和iOS平台上的全能多媒体开发框架,全面支持硬件解码和GPU渲染。 Vitamio以简单易用的API界面受到世界各地许多开发人员的欢迎。 目前,全球已有1万多种APP应用程序使用Vitamio,覆盖5亿多用户。

Vitamio可以顺畅地播放720P或1080P的HDmkv、FLV、MP4、MOV、TS、RMVB等常见格式的视频,并在包含按需的Android和iOS中使用MMS、RTSP、RTMP、HLS ()

一. vitamio集成

1.1vitamio下载

请注意,您可以将最新的vitamio下载到官方网站地址https://www.vitamio.org/Download/,其中有两个文件夹。 一个vitamio和另一个vitamio-simple,在这两个文件夹之后导入到Android studio

1.2vitamio部署

打开Android,在file----new----import module中,路径选择上述vitamio并确定点;

同样,用上述方法引入vitamio-simple。

导入的vitamio build.grad le中对应的sdk版本不同,因此与自己创建的项目相比,需要修改为本地sdk版本等信息,然后重新修改sync项目。

1.3将vitamio集成到项目中

1.3.1相关so库

请参见vitamio-simple的build.gradle中的compile示例,将vitamio库关联如下

与compileproject(:vitamio ) )1.3.2功能列表对应的文件在过去a、 权限:复制到uses-permission Android 3360 name=' Android.permission.wake的uses-permission Android 3360 name=' Android.permission uses-permission Android 3360 name=' Android.permission Android 3360 name=' Android.permid uses-permisssion Android 3360 name age '/uses-permission Android 3360 name uses-permission Android 3360 name=' Android.permission.read _ phone _ state ' /

! - don ' tforgotinitactivity---activity Android : name=' io.vov.vitamio.activity.init activity ' Android 3360 conation

launchMode="singleTop"                    android:theme="@android:style/Theme.NoTitleBar"                    android:windowSoftInputMode="stateAlwaysHidden" />                <activity android:name=".VitamioListActivity" >

        1.4 把我们之前写的SystemVideoPlayer 复制一份,改为VitamioVideoPlayer,里面的包引用vitamio包里的,特别是videoview,mediaplayer 这个类。

        1.5 布局文件 activity_system_video_player.xml复制一份改为activity_vitamio_video_player.xml,里面引用的包也要改为vitamio的类


        1.6 在加载布局文件前,初始化vitamio


        1.7 当视频播放出错时,跳转到万能播放器vitamioVideoPlayer播放,并把自定义的这个播放器activity  finish()掉

        

/** * 播放出错 */class MyOnErrorListener implements MediaPlayer.OnErrorListener {    @Override    public boolean onError(MediaPlayer mp, int what, int extra) {        //出错后,系统会自动提示播放出错,同时自己也弹一个吐司        //Toast.makeText(SystemVideoPlayer.this,"播放出错",Toast.LENGTH_SHORT).show();        //播放出错的原因        //1.播放的视频格式不支持  ----解决办法,跳转到万能播放器去播放        //1、关闭老的播放器        //2、把数据传过去        startVitamioPlayer();        //2.播放网络视频时,网路中断   -----如果网络确实断了,提示用户网络断了;如果网络断断续续,重新播        //3.播放的视频中间有空白  -----只能去重新下载        return true;    }}private void startVitamioPlayer() {    if (videoview!=null){        videoview.stopPlayback();    }    Intent intent=new Intent(this, VitamioVideoPlayer.class);    if(medialist!=null&&medialist.size()>0){        Bundle bundle=new Bundle();        bundle.putSerializable("mediallist",(ArrayList<MediaItem>)medialist);        intent.putExtras(bundle);        intent.putExtra("position",position);  //将点击的视频的位置传过去,方便定位播放的是哪个视频    }else if (uri!=null){        intent.setData(uri);    }    startActivity(intent);    finish();}

1.8 在vitamio万能播放器里,如果播放还是出错,则提示用户,无法播放视频

    

/** * 播放出错 */class MyOnErrorListener implements MediaPlayer.OnErrorListener {    @Override    public boolean onError(MediaPlayer mp, int what, int extra) {        //出错后,系统会自动提示播放出错,同时自己也弹一个吐司        Toast.makeText(VitamioVideoPlayer.this,"播放出错",Toast.LENGTH_SHORT).show();        //播放出错的原因        //1.播放的视频格式不支持  ----解决办法,跳转到万能播放器去播放        //2.播放网络视频时,网路中断   -----如果网络确实断了,提示用户网络断了;如果网络断断续续,重新播        //3.播放的视频中间有空白  -----只能去重新下载        //万能播放器出错了,那么弹出一个对话框        showErrrorDialog();        return true;    }}private void showErrrorDialog() {    AlertDialog.Builder builder=new AlertDialog.Builder(this);    builder.setTitle("提示");    builder.setMessage("播放出错了");    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            finish();        }    });    builder.show();}


二、补充之前播放控制栏里的切换播放器的按钮

    

    点击后,弹出一个dialog,然后在用户点击确定时,通过intent,把数据传给vitamio播放器,同理,在vitamio里,点击这个把数据传到这个自定义的播放器里。

    

else if ( v == switchPlayer ) {    // Handle clicks for switchPlayer    AlertDialog.Builder builder=new AlertDialog.Builder(this);    builder.setTitle("提示");    builder.setMessage("当播放画面有花屏时,尝试切换到系统播放器");    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            startSystemPlayer();        }    });    builder.setNegativeButton("取消",null);    builder.show();}private void startSystemPlayer() {    if (videoview!=null){        videoview.stopPlayback();    }        Intent intent=new Intent(this, SystemVideoPlayer.class);    if(medialist!=null&&medialist.size()>0){        Bundle bundle=new Bundle();        bundle.putSerializable("mediallist",(ArrayList<MediaItem>)medialist);        intent.putExtras(bundle);        intent.putExtra("position",position);  //将点击的视频的位置传过去,方便定位播放的是哪个视频    }else if (uri!=null){        intent.setData(uri);    }    startActivity(intent);    finish();}


转载于:https://blog.51cto.com/cm0425/1950895

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。