2013-04-18 516 views
1

我正在播放一个.mp4视频文件,该文件已添加到raw文件夹中。 结果是我总是在LogCat中获得error (1, -2147483648)错误(1,-2147483648)无法播放此视频

经过一番研究,我发现这是由于不支持的编解码器/格式造成的。但根据http://developer.android.com/guide/appendix/media-formats.html,我在Adobe Premiere中呈现视频的最后2天?在所有支持的格式和更多。结果总是相同的:我得到的错误和一个“不能播放这个视频。”当应用程序启动。

我的Java代码是这样的:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

     VideoView vv = (VideoView) findViewById(R.id.videoView); 

     String fileName = "//BioLab/res/raw/sequence"; 

     vv.setVideoURI(Uri.parse(fileName)); 
     vv.start(); 

    } 
} 

和主要活动是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 


<VideoView android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/videoView"/> 

</RelativeLayout> 

我所看到的比赛里他们玩全屏视频,如公司标志的视频。他们是如何做到的呢?必须有一个通用的方式。

注:我在Java代码中使用路径"//BioLab/res/raw/sequence",因为如果我使用"/BioLab/res/raw/sequence.mp4"“android.resource://” + getPackageName() +”/”+R.raw.video我得到另一个错误

的logcat:error opening trace file: No such file or directory (2)

回答

-1

error (1, -2147483648)通常意味着链接你给你的MediaPlayer(videoview在你的情况下)是无效的或文件已损坏。
您试图从RAW文件夹中获取文件的方式很腥。
尝试以下操作。
我假设你正在尝试播放的文件的名称是序列**

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
     setContentView(R.layout.activity_main); 

     VideoView vv = (VideoView) findViewById(R.id.videoView); 
     String path = "android.resource://" + getPackageName() +"/"+ R.raw.sequence; 
     Log.d("TAG", path); 

     Uri url=Uri.parse(path); 

     vv.setVideoURI(url); 
     vv.start(); 
     vv.requestFocus(); 

    } 
} 
+0

II提供这样的路径,它不但不修正这个错误,但它增加了一个又一个。:打开跟踪文件时出错:没有这样的文件或目录(2) – user2186852 2013-04-18 05:28:18

+0

你试图播放的文件的名称是什么?你创建了原始文件夹吗?您的原始文件夹中是否存在sequence.mp4或sequence.3gp文件? – 2013-04-18 05:31:51

+0

该文件被称为sequence.mp4。是的,我有原始文件夹,并在我的文件。 – user2186852 2013-04-18 05:38:59