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作品を試しました)
ありがとう!
は動作しませんでした.... – user1032412
はあなたのlogcatを共有 – Panda2109