2014-07-23 53 views
1

我在這本書中遇到了這個挑戰,並且我被困在這裏,基本上我有一個類來控制MediaPlayer類中的對象來播放文件夾「原始」中的特定視頻,這裏是代碼:MediaPlayer「android」它總是空?

private MediaPlayer mPlayer; 

    public void start(Context c,SurfaceHolder H){ 

     mPlayer = MediaPlayer.create(c, R.raw.apollo_17_stroll); // always null 
     if(mPlayer != null){ 

     mPlayer.setDisplay(H); // when I used it before the if statment it crashes, but I think it's because that player is null 
     mPlayer.start(); 

     } 

    } 

和我有surfaceview片段觀點:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="2" 
    > 
     <SurfaceView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="100dp" 
    android:paddingBottom="100dp" 
    android:id="@+id/hellomoon_Surface_View" 
    /> 

    </LinearLayout> 

我基本上把它的片段類:

private VideoPlayer mVideoPlayer = new VideoPlayer(); // the class that I created to play a specific Video 

private SurfaceView mSurfaceView; 

mSurfaceView = (SurfaceView)v.findViewById(R.id.hellomoon_Surface_View); 

mPlayBTN.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       //mPlayer.play(getActivity()); 
       mVideoPlayer.start(getActivity(),mSurfaceView.getHolder()); 

      } 
     }); 

//Ë DIT:

我已經下載的視頻轉換器和轉換視頻的MP4是Android支持,它的工作,現在,不知道爲什麼,但相同的文件與其他工作就好了,反正謝謝大家..

+0

這裏沒有問題... – Sinkingpoint

+0

的問題是在標題,MediaPlayer的。創建(c,R.raw.apollo_17_stroll);返回null並且視頻是好的,它被放在書中的例子中。 – user3678306

回答

0

我是新到Android(初學者學習)

我認爲這個問題是您的上下文。 我認爲我們通過上下文,如:CurrentClassName.this

mVideoPlayer.start(CurrentClassName.this,mSurfaceView.getHolder()); 

希望你已註冊的其他類清單以及

+0

我使用片段,所以我需要傳遞getActivity()作爲上下文對象。 – user3678306

+0

我不知道片段的事情,但其他上下文可以通過Fragmentclassname.class – Shivam