Unity3d 按钮控制视频播放暂停

Posted Leoysq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d 按钮控制视频播放暂停相关的知识,希望对你有一定的参考价值。

 有好几个办法,这边选择最简单的办法:

创建一个游戏物体,啥都行。组件就是孙悟空的技能。我让游戏物体有啥技能就加啥组件。

这里创建了个Quad平面,直接给他添加了组件叫Video Player(任何组件都有对应的类来存放它),直接把放到Unity Assets中的视频拖到Video Clip的地方即可;

 按钮控制办法:

 

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class PlayVideo : MonoBehaviour

    Button PlayButton;//存放按钮组件
    VideoPlayer Myvideo;//存放视频播放组件
    GameObject OneVideoPlan;//存放Video组件所在的游戏物体
    bool isPlaying = false;
    void Start()
   
        PlayButton = GameObject.FindGameObjectWithTag("Playbutton").GetComponent<Button>();
        Myvideo = GameObject.FindGameObjectWithTag("OneVideoPlan").GetComponent<VideoPlayer>();
        if (Myvideo != null)
       
            Debug.Log("Myvideo组件拿到");
            Myvideo.playOnAwake = false;//拿到要找到的视频播放组建后关闭视频
       
        else
       
            Debug.Log("Myvideo组件mei拿到");
       

   

    void Update()
   
        do
       
            if (PlayButton == null)
           
                break;
           
            else
           
                PlayButton.onClick.AddListener(PlayVideoMoth);

           

        while (false);
   

    void PlayVideoMoth()
   
        //播放视频
        if (!Myvideo.isPlaying)
       
            Myvideo.Play();
            isPlaying = true;
       
        else if(Myvideo.isPlaying)
       
            //Myvideo.Stop(); // 停止播放视频(视频回到起点)
            Myvideo.Pause();//视频暂停
       
   

 

 


 

在android中隐藏媒体控制器的播放暂停按钮

【中文标题】在android中隐藏媒体控制器的播放暂停按钮【英文标题】:Hide play pause button of media controller in android 【发布时间】:2013-04-02 12:06:12 【问题描述】:

我的活动中有视频视图,也有 MediaController,但我想隐藏媒体控制器的播放暂停按钮。

这是我的代码:

MediaController mediaController =  new MediaController(this,false);
videoHolder.setMediaController(mediaController);
mediaController.setAnchorView(videoHolder);

请给我建议解决方案。

【问题讨论】:

你试过visibility函数了吗? 我应该在哪个组件上使用它? 你的布局中有按钮,不是吗? 我想隐藏媒体控制器的按钮 想要搜索栏,但不希望媒体控制器提供任何其他内容 【参考方案1】:

我已经做到了。默认情况下,媒体控制器不公开任何隐藏播放/暂停控件的方法。因此,我们必须遍历 Media Controller 的子视图,获取所需的视图,然后对该视图做任何你想做的事情。

就我而言,我是按照以下方式进行的->

videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) 
              LinearLayout viewGroupLevel1 = (LinearLayout)  media_Controller.getChildAt(0);
            LinearLayout viewGroupLevel2 = (LinearLayout) viewGroupLevel1.getChildAt(0);
            View view = viewGroupLevel2.getChildAt(2);
            view.setVisibility(View.GONE);
            videoPlayer.start();
        
    ); `

为了解释我的代码,基本上媒体控制器是 FrameLayout 的子类,它在位置 0 有一个 LinearLayout 作为子视图组 (viewGroupLevel1),viewGroupLevel1 再次包含两个子视图组,从中获取视图组 (viewGroupLevel2) viewGroupLevel1 在位置 0。现在在 viewGroupLevel2 中获取位置 2 的视图,它实际上是一个图像按钮(播放/暂停按钮)。现在您可以轻松隐藏它。干杯!

【讨论】:

【参考方案2】:

你可以看到 http://www.phonesdevelopers.com/1765331/

    MediaController mc = new MediaController(this);  
    mc.setVisibility(View.INVISIBLE);  
    videoView.setMediaController(mc);  

成功了

【讨论】:

它隐藏了所有MediaController 视图。 它工作了,但会显示 MediaController 视图的细黑色边框线,所以这个解决方案对我不起作用。【参考方案3】:

试试看(不确定)

使用 OnPreparedListener 并在回调 onPrepared 中不正确地隐藏,例如:

@Override
public void onPrepared (MediaPlayer mp) 

    int childs = mediaController.getChildCount();
    for (int i = 0; i < childs; i++)
    
        View child = mediaController.getChildAt (i);
        child.setVisibility (View.GONE);
    

【讨论】:

以上是关于Unity3d 按钮控制视频播放暂停的主要内容,如果未能解决你的问题,请参考以下文章

使用播放/暂停/停止按钮控制 Flash 视频的声音

JavaScript 通过具有相同类的播放按钮播放具有相同类控制的视频

在android中隐藏媒体控制器的播放暂停按钮

Unity3D日常开发Unity3D中Animation和Animator动画的播放暂停倒放控制

使用 AngularJS 控制 HTML5 视频/音频播放器的播放和暂停

播放器控制器在 tvOS 中按下菜单按钮时关闭