Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android I';我无法在活动中设置视频_Android_Video - Fatal编程技术网

Android I';我无法在活动中设置视频

Android I';我无法在活动中设置视频,android,video,Android,Video,您好,我不想打扰您,但我是新开发的程序 我试图在活动中播放视频,但总是出现黑屏 我的视频采用mp4 h264格式,使用ffmpeg和android配置文件创建,并在quicktime中播放,设置为res/raw/corsolex_1.mp4 我附上我写的代码,以了解我错过了做什么,如果有人可以帮助我,我非常感谢 安杰洛 此活动称为Clipvideo1 package com.wocmultimedia.VideoEditLesson1; import android.app.Activity;

您好,我不想打扰您,但我是新开发的程序

我试图在活动中播放视频,但总是出现黑屏

我的视频采用mp4 h264格式,使用ffmpeg和android配置文件创建,并在quicktime中播放,设置为res/raw/corsolex_1.mp4

我附上我写的代码,以了解我错过了做什么,如果有人可以帮助我,我非常感谢

安杰洛

此活动称为Clipvideo1

package com.wocmultimedia.VideoEditLesson1;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;

public class Clipvideo1 extends Activity {@Override
     protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.clip1);

// Put the media file into the res/raw folder of your application
MediaPlayer mp = MediaPlayer.create(this, R.raw.corsolex_1);
mp.start();
}}
这是名为clip1.XML的XML布局

<FrameLayout android:id="@+id/linearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">
        <VideoView android:id="@+id/videoView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"></VideoView>

    </FrameLayout>

您无法以某种方式将视频链接到VideoView

如您所见,uri有3个部分:

  • “android.resource://”
  • “com.wocmultimedia.videoeditson1”
  • 你的资源
  • “corsolex_1”是您的视频的名称

    也许这段代码有助于:

    @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.clip1);
    
        VideoView videoView = (VideoView) findViewById(R.id.videoView1);
    
        Uri videoPath = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.corsolex_1);
    
        videoView.setVideoURI(videoPath);
        videoView.requestFocus();
        videoView.start();
    
        }
    
    是SurfaceView的子类,包含并管理MediaPlayer对象。在XML文件中声明视频视图,在Java代码中创建并管理MediaPlayer对象。它们是分开的,在代码中它们之间没有关系。因此,您有两种选择:

  • 使用VideoView,如Vivilone的回答中所述,并让它管理MediaPlayer对象这是最好的方法,IMHO,有人已经开发了MediaPlayer对象的处理,并为您很好地包装了它
  • 使用MediaPlayer,但要妥善管理,包括表面和表面支架的处理和连接。查看android开发者网站中的,看看应该如何做

  • 非常非常感谢最终我理解了一点…我很抱歉,但我刚开始这份工作,所以我很快就会感到困惑,混淆了事情…我会尝试你的解决方案,让你知道结果…再次非常感谢。我很抱歉,但我又迷路了。你能用简单的话说一下,如果我需要改变什么吗因为我在我的项目中复制了你的代码,并得到一个URI错误。耐心等待,请检查此错误,因为我无法在此处添加屏幕截图,并帮助我了解如何将其设置为正确。“类型VideoView的方法setVideoUri(Uri)未定义”它出现在“VideoView.setVideoUri(videoPath)”行中;“非常感谢!Angelo@evilone很抱歉,我又迷路了,你能简单地说一下,如果我在我的项目中复制了你的代码,并且得到了一个URI错误,那么我需要在哪里做一些更改。耐心等待,请检查此错误,因为我无法在此处添加屏幕截图,并帮助我了解如何将其设置为正确。“类型VideoView的方法setVideoUri(Uri)未定义”它出现在“VideoView.setVideoUri(videoPath)”行中;“非常感谢!Angelo@AngeloGiammaresi你有真正的设备可以测试吗?因为它在我的模拟器上不起作用,但在真实的设备上,这段代码还可以。另外,请检查所有代码是否适用于您的项目。@对不起,我没有真正的设备。你能告诉我在哪里我可以给你一个屏幕截图,向你展示我的项目吗?非常感谢你,你可以用我的邮件wocmultimedia@ymail.comThank谢谢你们对我的帮助,你们俩都很好,如果你们需要视频编辑技巧,我希望我能帮助你们。我只是想写一个小应用来展示我的视频制作。所以,我正在一步一步地建造它。非常感谢你。