简体   繁体   English

VideoView流:音频有效,但视频为黑色

[英]VideoView Streaming: Audio works but video is black

I have a very strange issue. 我有一个很奇怪的问题。 I am using a steam video and I play it on my app but the issue is that Audio works but video is not working. 我正在使用蒸汽视频,并且在我的应用程序上播放它,但问题是音频有效,但视频不起作用。 It shows a black screen (See image for reference.) I have no idea what the issue is. 它显示黑屏(请参阅图像以供参考。)我不知道问题是什么。 Audio works fine but video shows black screen. 音频工作正常,但视频显示黑屏。

Any ideas of what the issue can be? 对这个问题有什么想法?

Here is my code for reference: 这是我的代码供参考:

public class Video_Low_Mission extends Activity {
    // Put in your Video URL here
    private String VideoURL = "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov";
    // Declare some variables
    private ProgressDialog pDialog;
    VideoView videoview;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Set the layout from video_main.xml
    setContentView(R.layout.activity_video__low__mission);
    // Find your VideoView in your video_main.xml layout
    videoview = (VideoView) findViewById(R.id.VideoView);
    // Execute StreamVideo AsyncTask
    new StreamVideo().execute();

}


// StreamVideo AsyncTask
private class StreamVideo extends AsyncTask<Void, Void, Void> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Create a progressbar
        pDialog = new ProgressDialog(Video_Low_Mission.this);
        // Set progressbar title
        pDialog.setTitle("Mission TV (Low Quality)");
        // Set progressbar message
        pDialog.setMessage("Buffering...");
        pDialog.setIndeterminate(false);
        // Show progressbar
        pDialog.show();

    }

    @Override
    protected Void doInBackground(Void... params) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected void onPostExecute(Void args) {

        try {
            // Start the MediaController
            MediaController mediacontroller = new MediaController(
                    Video_Low_Mission.this);
            mediacontroller.setAnchorView(videoview);
            // Get the URL from String VideoURL
            Uri video = Uri.parse(VideoURL);
            videoview.setMediaController(mediacontroller);
            videoview.setVideoURI(video);

            videoview.requestFocus();
            videoview.setOnPreparedListener(new OnPreparedListener() {
                // Close the progress bar and play the video
                public void onPrepared(MediaPlayer mp) {
                    pDialog.dismiss();
                    videoview.start();
                }
            });
        } catch (Exception e) {
            pDialog.dismiss();

            // Error Here

            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }

    }

}

// Not using options menu for this tutorial
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.video__low__mission, menu);
    return true;
}

XML: 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:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <VideoView
        android:id="@+id/VideoView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

</RelativeLayout>

Thanks :) 谢谢 :)

Playing of mov files is not supported on the android. android不支持播放mov文件。 mov is an apple format, and there is not a default video codec in android to play them. mov是Apple格式,并且android中没有默认的视频编解码器来播放它们。 Reference 参考

You can try vitamio framework, it supports .mov format. 您可以尝试vitamio框架,它支持.mov格式。 Check also this decription . 也检查这个解题

我使用以下代码解决了这个问题,希望它对您有用。

videoView.setBackgroundColor(Color.TRANSPARENT);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM