我在三星S3(Android 4.1.1)中運行視頻時出現問題,該問題似乎是因爲videoview位於片段上,因爲如果我將它放在活動上,它會作品。 此外,我發現,如果我打開GPU硬件加速,視頻的作品。 我也有一個通過在SurfaceView上繪製的遊戲,並且該視圖不能正常工作(僅在GPU上)...應用程序內容的其餘部分顯示爲它應該(按鈕和其他佈局)。VideoView未顯示在片段上
我測試在Nexus S和模擬器上的應用程序,它工作得很好,還對其他設備..
有誰知道這個問題可能是什麼? 謝謝!
這裏是代碼:
public class VideoFragment extends Fragment implements MediaPlayer.OnCompletionListener,
MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener {
private Video mVideo;
private VideoView mVideoView;
// The video position
private int mPosition;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View fragmentView = inflater.inflate(R.layout.screen_video, container, false);
mVideoView = (VideoView) fragmentView.findViewById(R.id.VideoView);
return fragmentView;
}
@Override
public void onPause() {
super.onPause();
// Pause the video if it is playing
if (mVideoView.isPlaying()) {
mVideoView.pause();
}
// Save the current video position
mPosition = mVideoView.getCurrentPosition();
}
@Override
public void onResume() {
super.onResume();
mVideoView.setOnCompletionListener(this);
mVideoView.setOnPreparedListener(this);
mVideoView.setOnErrorListener(this);
mVideoView.setKeepScreenOn(true);
// Initialize the media controller
MediaController mediaController = new MediaController(getActivity());
mediaController.setMediaPlayer(mVideoView);
// Set-up the video view
mVideoView.setMediaController(mediaController);
mVideoView.requestFocus();
mVideoView.setVideoPath(mVideo.getUrl());
if (mVideoView != null) {
// Restore the video position
mVideoView.seekTo(mPosition);
mVideoView.requestFocus();
}
}
@Override
public void onDestroy() {
super.onDestroy();
// Clean-up
if (mVideoView != null) {
mVideoView.stopPlayback();
mVideoView = null;
}
}
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Log.e("VIDEO PLAY", "end video play");
}
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
// Start the video view
mediaPlayer.start();
Log.e("VIDEO PLAY", "video ready for playback");
}
@Override
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
Log.e("VIDEO PLAY", "error: " + i);
return true;
}
}
我不認爲它的東西與情境(應用程序或活動)..因爲在所有其他設備的視頻和遊戲顯示.. 謝謝尋求幫助!
請發佈與VideoView相關的片段和佈局代碼。沒有這個,很難說出了什麼問題。 –
也添加了代碼,對不起..事情是,我使用這個視頻片段類和一個遊戲,它實際上是一個SurfaceView,我在該表面上繪圖,所以我不認爲這與我的代碼有關..如果屏幕運行一個活動,然後兩個工作正常..感謝您的幫助 – Cata