2017-05-15 9 views
0

私は画面の中央に映像を表示しようとしていますが、音声は聞こえ、映像はありません。 は私がでframeLayoutにボタンを追加しましたが、ボタンが(ビデオイマイチ)を示している これはビデオは音声でのみ表示されますandroid

<FrameLayout 
    android:layout_width="776dp" 
    android:layout_height="365dp" 
    android:layout_gravity="center" 

    android:id="@+id/videoLayout" 
    android:visibility="gone"> 

    <SurfaceView 
     android:id="@+id/arVideoView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:alpha="1" 
     android:layout_gravity="center" 
     /> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="bottom|center_horizontal"> 

     <Button 
      android:text="Stop" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/buttonStop" 
      android:onClick="stopPlaying"/> 

     <Button 
      android:text="play" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/buttonPlay" 
      android:layout_toRightOf="@+id/buttonStop" 
      android:onClick="StartPlaying"/> 

     <Button 
      android:text="Start" 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/buttonStart" 
      android:layout_marginLeft="30dp" 
      android:layout_marginStart="30dp" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/buttonPlay" 
      android:onClick="MovieFromStart"/> 

    </RelativeLayout> 

</FrameLayout> 

私のxmlであり、これは私のコードです:私は間違っ

public boolean Run(Model currentModel, Activity act) { 
    _act = act; 

    final FrameLayout rlVideo = (FrameLayout) act.findViewById(R.id.videoLayout); 
    final String str = Environment.getExternalStorageDirectory()+ "/sfmModelTracker/ex3/Models/" + currentModel.id + "/"+ clip.VideoName; 
    final SurfaceView tv = (SurfaceView) act.findViewById(R.id.arVideoView); 
    tv.setZOrderOnTop(true); 



    try { 
     tv.setZOrderOnTop(true); 
     player.setDataSource(str); 
     tv.setZOrderOnTop(true); 
     player.setDisplay(tv.getHolder()); 
     tv.setZOrderOnTop(true); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 
      // Adjust the size of the video 
      // so it fits on the screen 


      int videoWidth = player.getVideoWidth(); 
      int videoHeight = player.getVideoHeight(); 
      float videoProportion = (float) videoWidth/(float) videoHeight; 
      int screenWidth = rlVideo.getWidth(); 
      int screenHeight = rlVideo.getHeight(); 
      float screenProportion = (float) screenWidth/(float) screenHeight; 
      android.view.ViewGroup.LayoutParams lp = tv.getLayoutParams(); 

      if (videoProportion > screenProportion) { 
       lp.width = screenWidth; 
       lp.height = (int) ((float) screenWidth/videoProportion); 
      } else { 
       lp.width = (int) (videoProportion * (float) screenHeight); 
       lp.height = screenHeight; 
      } 


      tv.setLayoutParams(lp); 


      if (!player.isPlaying()) { 
       player.start(); 

       tv.setZOrderOnTop(true); 
      } 


     } 
    }); 
    player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
    { 

     @Override 
     public void onCompletion(MediaPlayer mp) 
     { 
      ScreenManager.getInstance(null).StopPlaying(); 
     } 
    }); 
    tv.setZOrderOnTop(true); 
    try { 
     player.prepare(); 
     tv.setZOrderOnTop(true); 
     rlVideo.setVisibility(View.VISIBLE); 
     //rl.setVisibility(View.VISIBLE); 
     tv.setVisibility(View.VISIBLE); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    //player.start(); 


    //tv.sur 

    return false; 

} 

何をやっていますか? (私はすでにZ - didnt作品を試しました)

ありがとう!

答えて

0

次のスニペットを試してみてください。

VideoView play = (VideoView) view.findViewById(R.id.play); 
        MediaController mediaController = new MediaController(mContext); 
        mediaController.setAnchorView(play); 
        Uri video = Uri.parse(""); 
        play.setMediaController(mediaController); 
        play.setVideoURI(video); 
        play.start(); 
        play.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          if (play.isPlaying()) { 
           play.pause(); 

          } else if (!play.isPlaying()) { 
           play.start(); 
          } 

         } 
        }); 

XMLは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 

      <VideoView 
       android:id="@+id/play" 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/height" /> 


</LinearLayout> 
+0

は動作しませんでした.... – user1032412

+0

はあなたのlogcatを共有 – Panda2109

関連する問題