【问题标题】:How to Make Video to loop and Mute Audio VideoView如何使视频循环播放和静音音频 VideoView
【发布时间】:2018-02-27 11:58:51
【问题描述】:

大家好,我是 Android 开发新手,我正在使用练习制作 Android 应用 那么如何使用 VideoView 使视频循环播放和静音? 我需要将视频静音并循环播放,仅此而已

谢谢

这是我的代码

BenchFragment.Java

package com.Hristijan.Aleksandar.GymAssistant.Exercises;

import android.net.Uri;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.MediaController;
import android.widget.VideoView;

public class BenchFragment extends Fragment {

    private VideoView player;
    private String videopath;
    private MediaController mediacon;
    public  View rootView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

        rootView = inflater.inflate(R.layout.fragment_bench, container, false);
        mediacon = new MediaController(getActivity());
        player = (VideoView) rootView.findViewById(R.id.videoplayer);
        videopath = "android.resource://" + getActivity().getPackageName() + "/" + R.raw.bench;
        player.setVideoURI(Uri.parse(videopath));
        mediacon.setAnchorView(player);
        player.start();
        return rootView;
    }
}

fragment_bench.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/bench_layout"
    android:layout_width="match_parent"
    android:background="#000000"
    android:layout_height="match_parent"
    tools:context="com.Hristijan.Aleksandar.GymAssistant.Exercises.BenchFragment">

        <VideoView
            android:layout_width="match_parent"
            android:layout_height="250dp"
            android:foregroundGravity="center"
            android:id="@+id/videoplayer" />

</RelativeLayout>

【问题讨论】:

标签: android


【解决方案1】:

调用MediaPlayer.OnPreparedListener和MediaPlayer.OnCompletionListener,然后可以调用MediaPlayer.setVolume(0f, 0f);

videoview.setOnPreparedListener(new OnPreparedListener() {

    @Override
    public void onPrepared(MediaPlayer mp) {
        //.....do prepaid  
        mp.setVolume(0, 0);
        //Looping
        //m.setLooping(true);
        m.start();
    }
});

或者让它再次播放

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {
            mp.start();
        }
    });

【讨论】:

  • 我跳到 ExoPlayer 如何让视频在不按下按钮的情况下自动启动?
  • @AleksandarDivitarov:设置数据源后调用 player.play()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
相关资源
最近更新 更多