【问题标题】:Can't play this video for videoview无法为 videoview 播放此视频
【发布时间】:2018-12-20 12:43:20
【问题描述】:

我知道这个问题已经被问过很多次了。我已经尝试了许多前面提到的解决方案,比如提高 API 级别、更改 android 设备、更改视频、更改视频格式。每次都出现同样的错误。我正在使用 Nexus 6p,运行 Oreo 8.1,最低 API 类似于 Marshmellow。 xml代码:

<VideoView
            android:background="@color/colorPrimaryDark"
            android:layout_height="600dp"
            android:layout_width="fill_parent"
            android:id="@+id/VideoView" />

        <Button
            android:text="@string/play"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="onButtonClick"
            android:background="@color/colorPrimary"
            android:id="@+id/button"/>

java代码:

public class IntroVideoActivity extends AppCompatActivity {
VideoView VideoView;
Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_intro_video);
        VideoView = (VideoView) findViewById(R.id.VideoView);
        button = (Button) findViewById(R.id.button);
        }
        public void onButtonClick (View v) {
        String videopath = "android.resource://com.example.nisat.favor"+R.raw.anime;
        Uri uri = Uri.parse(videopath);
        VideoView.setVideoURI(uri);
        VideoView.start();
        }
}

我也试过这段代码:

VideoView videoView = (VideoView)findViewById(R.id.VideoView);
        MediaController mediaController = new MediaController(this);
         mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);

        videoView.setVideoPath("vectorvideo");

        videoView.start();

【问题讨论】:

标签: java android xml android-videoview


【解决方案1】:

视频必须采用受支持的格式(3gp、wmv、mp4),并在文件名中使用小写字母、数字、下划线和圆点命名:video_file.mp4。

代替

String videopath = "android.resource://com.example.nisat.favor"+R.raw.anime;

试试

String videopath = "android.resource://" + getPackageName() + "/" + R.raw.anime;

【讨论】:

    【解决方案2】:

    检查您的方法何时被调用?

    onButtonClicked(查看 v)

    尝试此代码并首先尝试不单击按钮,如果它有效,然后在单击按钮时调用它。我在我的活动中使用它,它工作正常。

    String basePath = "android.resource://" + getPackageName() +"/"+"/raw/";
    Intent intent = getIntent();
    String videoName = intent.getStringExtra(VIDEO_NAME);
    final boolean videoRepeat = intent.getBooleanExtra(VIDEO_REPEAT, false);
    Uri videoUri = Uri.parse(basePath+videoName);
    VideoView videoPlayer = (VideoView) findViewById(R.id.videoPlayer);
    MediaController mc = new MediaController(this);
    mc.setAnchorView(videoPlayer);
    mc.setMediaPlayer(videoPlayer);
    mc.setVisibility(View.GONE);
    videoPlayer.setMediaController(mc);
    videoPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            if(!videoRepeat){
                finish();
            }
        }
    });
    videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            if(videoRepeat) {
                mp.setLooping(true);
            }else{
                mp.setLooping(false);
            }
        }
    });
    videoPlayer.setVideoURI(videoUri);
    videoPlayer.start();
    

    【讨论】:

      【解决方案3】:
          use this code 
      mention permission in AndroidManifest.xml
      
          <uses-permission android:name="android.permission.INTERNET"></uses-permission>
      
      and this line of code inside the MainActivity.class
      
                  String videopath = "android.resource://com.example.cloudanalogy.play_video/"+R.raw.a;
                  Uri vidUri = Uri.parse(videopath);
                  videoView.setVideoURI(vidUri);
                  videoView.start();
                  MediaController mediaController = new MediaController(this);
                  mediaController.setAnchorView(videoView);
                  videoView.setMediaController(mediaController);
      

      【讨论】:

      • 你错过了反斜杠 (/) 设置正确的路径 String videopath = "android.resource://com.example.nisat.favor/"+R.raw.anime;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 2017-04-11
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      相关资源
      最近更新 更多