2011-06-12 83 views
0

编辑------------ 我想拥有多个视频,当您在屏幕上滑动手指时,它会转到下一个带有暂停的视频并播放按钮。在Android应用程序中播放视频

LINK我的文件:http://www.mediafire.com/?ap12kiibfe438bf

----------------

林使这个应用程序,播放视频和简单exept我有多视频播放和即时消息不知道,如果我所有的编码是正确的,我不知道如何实现从一个视频滚动到下一个。

这是我的Java代码:

package com.exercise.AndroidVideoPlayer; 

import java.io.IOException; 

import android.app.Activity; 
import android.graphics.PixelFormat; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 
import android.view.View; 
import android.widget.Button; 

public class AndroidAudioPlayer extends Activity implements SurfaceHolder.Callback{ 

    MediaPlayer mediaPlayer; 
    SurfaceView surfaceView; 
    SurfaceHolder surfaceHolder; 
    boolean pausing = false;; 

    String stringPath = "/sdcard/samplevideo.3gp"; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button buttonPlayVideo = (Button)findViewById(R.id.playvideoplayer); 
     Button buttonPauseVideo = (Button)findViewById(R.id.pausevideoplayer); 

     getWindow().setFormat(PixelFormat.UNKNOWN); 
     surfaceView = (SurfaceView)findViewById(R.id.surfaceview); 
     surfaceHolder = surfaceView.getHolder(); 
     surfaceHolder.addCallback(this); 
     surfaceHolder.setFixedSize(176, 144); 
     surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
     mediaPlayer = new MediaPlayer(); 

     buttonPlayVideo.setOnClickListener(new Button.OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       pausing = false; 

       if(mediaPlayer.isPlaying()){ 
        mediaPlayer.reset(); 
       } 

       mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
       mediaPlayer.setDisplay(surfaceHolder); 

       try { 
        mediaPlayer.setDataSource(stringPath); 
        mediaPlayer.prepare(); 
       } catch (IllegalArgumentException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IllegalStateException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

       mediaPlayer.start(); 


      }}); 

     buttonPauseVideo.setOnClickListener(new Button.OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if(pausing){ 
        pausing = false; 
        mediaPlayer.start(); 
       } 
       else{ 
        pausing = true; 
        mediaPlayer.pause(); 
       } 
      }}); 

    } 



    @Override 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, 
      int height) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void surfaceCreated(SurfaceHolder holder) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder holder) { 
     // TODO Auto-generated method stub 

    } 
} 

我的main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <ScrollView> android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="110px" 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
<Button 
    android:id="@+id/playvideoplayer" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="- PLAY Video -" 
    /> 
<Button 
    android:id="@+id/pausevideoplayer" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="- PAUSE Video -" 
    /> 
<SurfaceView 
    android:id="@+id/surfaceview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    /> 
    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
<Button 
    android:id="@+id/playvideoplayer" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="- PLAY Video -" 
    /> 
<Button 
    android:id="@+id/pausevideoplayer" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="- PAUSE Video -" 
    /> 
<SurfaceView 
    android:id="@+id/surfaceview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    /> 
    </ScrollView> 
</LinearLayout> 

如果你能请帮助我如何滚动从一个视频到下一个,就像我做的只是复制所有的代码,并把它放在我之前做的事情之下?或者是什么?

对不起,如果我不是非常有帮助,但我真的需要这样做。

感谢

埃里克·V

+0

你是指从一个滚动到另一个滚动?在布局之下,他们都有相同的ID! – Blundell 2011-06-12 17:57:14

回答

0

我不知道你真正想要的,但我注意到,ScrollView - 标签已关闭,当您尝试添加属性:

<ScrollView> android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="110px" 

另外,我不会在一个Activity中加载多个视频并让它们播放(可能会导致大量内存使用)。我会简单地创建一个VideoView的布局,并制作一个播放列表,当您的其中一个视频完成并加载下一个视频VideoView

相关问题