【问题标题】:Playing video in videoview android在videoview android中播放视频
【发布时间】:2014-06-03 01:50:37
【问题描述】:

我正在尝试在视频视图中播放视频。 xml 代码包含视频视图为:

<VideoView
    android:id="@+id/vvIntroVideo"
    android:layout_width="wrap_content"
    android:layout_height="0dip"
    android:layout_weight="38" />

在我的 Java 部分代码中:

public class LoginPage extends Activity {

private VideoView introVideoView;

private static String DEBUG = LoginPage.class.getSimpleName();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login_page);

    //initializing part
    introVideoView = (VideoView) findViewById(R.id.vvIntroVideo);

    try {
        introPlayer();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Log.v(DEBUG, e.getMessage().toString());
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.login_page, menu);
    return true;
}

public void introPlayer(){
    Uri video = Uri.parse("android:resource://"+getPackageName()+"/"+R.raw.documentariesandyou);
    introVideoView.setVideoURI(video);
    introVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {
            // TODO Auto-generated method stub
            mp.setLooping(true);
        }
    });
    introVideoView.start();
}
}

应用程序显示无法播放视频的错误。视频是 MP4 格式,所以可能没有问题。在这种情况下谁能帮助我。

【问题讨论】:

  • 发布您的 logcat 错误和发生错误的特定行
  • @Milan Maharjan 你好,米兰我找到了一个教程,我的问题已经解决了。但是我还有一个问题你能不能看看我的另一个问题link

标签: android android-videoview


【解决方案1】:

首先定义ProgressDialog mProgressDialog;

然后试试这个代码,它对我有用:

video = (VideoView) findViewById(R.id.VideoView1);
        final MediaController mc = new MediaController(this);
        mc.setAnchorView(video);
        mc.setMediaPlayer(video);
        Uri uri = Uri.parse(path1);
        video.setMediaController(mc);
        System.out.println("!-- uri: "+uri.toString());
        video.setVideoURI(uri);

        video.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {



                   mProgressDialog.dismiss();






            }
        });

        video.start();

        video.setOnCompletionListener(new OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {

            }

        });


    }


    public void showLoaderProgress(){
        mProgressDialog = new ProgressDialog(this);
        mProgressDialog.setMessage("Loading Video\nPlease wait...");
        mProgressDialog.setIndeterminate(true);
        mProgressDialog.setCancelable(false);
        mProgressDialog.show();
    }

其中 path1 是您的视频路径。

【讨论】:

    【解决方案2】:

    由于您是初学者,我正在为您提供在 videoview 中播放视频的代码,这将播放来自原始文件夹的视频以及来自服务器 url 的实时流媒体视频。播放本地只需加载 URI 到 vieoview 其余的一切都是一样的。它很容易理解。我希望它会帮助你。

    活动中的全局变量

    private MediaController controller;
    ProgressBar progressBar = null;
    private String _url;
    

    创建

     VideoView video = (VideoView) findViewById(R.id.videoView1);
        controller = new MediaController(VideoScreen.this);
        video.setMediaController(controller);
    
        video.setVideoPath(_url);
        video.requestFocus();
        video.start();
        progressBar.setVisibility(View.VISIBLE);
        video.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                // TODO Auto-generated method stub
                mp.start();
                progressBar.setVisibility(View.GONE);
                mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {
                    @Override
                    public void onVideoSizeChanged(MediaPlayer mp, int arg1,
                            int arg2) {
                        progressBar.setVisibility(View.GONE);
                        mp.start();
                    }
                });
    
            }
        });
    

    【讨论】:

      【解决方案3】:

      我找到了解决方案。实际上问题在于视频的编码。我正在使用姜饼模拟器来测试应用程序,视频是 mp4 h.264。但似乎姜饼只能在默认情况下播放 mp4 或 3gpp h.263。

      【讨论】:

        猜你喜欢
        • 2013-05-18
        • 2015-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-02
        • 2012-11-07
        相关资源
        最近更新 更多