抱歉,这部影片无法播放!错误/ PlayerDriver

时间:2011-12-13 23:17:27

标签: android url video video-streaming

我在三星Galaxy S上播放我的视频时遇到问题..如果它来自SD卡,那么播放就好了但是当我上传到服务器然后发送网址时它会给我“抱歉,此视频无法播放” 。这是一个.mp4视频,我使用Sothink视频转换器将其转换为Android格式。

这是我的VideoView代码:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(),
       R.array.lecturehalls,R.layout.list_item));


final String[] links = getResources().getStringArray(R.array.vid_links);

getListView().setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

        String content = links[position];
        Intent showContent = new Intent(getApplicationContext(),
               VideoOutput.class);
        showContent.setData(Uri.parse(content));
        startActivity(showContent);

          }




  });
}

注意:URL路径存储在strings.xml中的数组中 我使用此链接时工作正常:http://www.pocketjourney.com/downloads/pj/video/famous.3gp 我的链接工作正常,我在我的电脑上进行了测试,但在手机上却无法正常工作!

这就是我得到的:

12-14 02:11:01.621: ERROR/PlayerDriver(1287): Command PLAYER_INIT completed with an error or info PVMFFailure

编辑: VideoOutput类

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.videoview);   


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


        Intent launchingIntent = getIntent();
        String content = launchingIntent.getData().toString();

    mediaController.setMediaPlayer(videoView);

    videoView.setVideoPath(content);

    videoView.setMediaController(mediaController);

    videoView.requestFocus();

    videoView.start();

    mediaController.show();


    }

1 个答案:

答案 0 :(得分:0)

我发现流媒体播放对于它喜欢播放的视频文件非常挑剔。

如果您可以将代码指向不同的电影文件并且它可以正常工作,那么我建议您找到不同的转换器,或者调整与您的编解码器相关的设置并再次尝试。或者您可以将其设置为将视频下载到SD,然后从那里播放。

编辑:

我在Wondershare Video Converter Platinum上运气不错。我认为有一个免费版本,但是一旦我对它进行了测试并发现它可以满足我的需求,我已经为它付了钱。

也发布VideoOutput类中的代码。这可能有助于揭示正在发生的事情。

此外,您应该将getApplicationContext()的两个实例替换为YourActivityName.this。以这种方式使用getApplicationContext()很容易在内存中保存上下文的副本,而不是需要的时间。此外,您的活动已经 一个上下文,因此您无需获得对具有更大范围的上下文的新引用。