2014-02-23 1 views
4

내 응용 프로그램에서는 VideoView를 사용하여 비디오 파일을 스트리밍하고 MediaPlayer.setLooping (true)을 사용하여 VideoView 루프 비디오를 만듭니다. 여기 VideoView는 Galaxy s4에서만 비디오를 루핑하지 않습니다.

는 코드의 일부 -

videoView.setVideoPath(url); 
videoView.setOnPreparedListener(new OnPreparedListener() { 

@Override 
public void onPrepared(MediaPlayer mp) { 
    if (shouldLoopVideo) { 
     mp.setLooping(true); 
    } 

    videoView.start(); 
} 
}); 

이 코드는 모든 장치에 대해 완벽하게 작동되지만, 갤럭시 S4 나는 많은 장치에서 테스트 4.2.2 안드로이드, 많은 안드로이드 버전,하지만 유일한 사람이 실패는 은하 s4입니다.

장치는 비디오를 한 번 재생하고 중지합니다 (onCompletion 수신기를 호출 한 후).

+1

이 링크 http://developer.samsung.com/forum/board/thread/view.do?boardName=General&messageId=249871&listLines=15&startId=zzzzz~ 참조 –

답변

0

동일한 문제가 있습니다. 다른 기기에서 작동하지만 Galaxy S4에서는 작동하지 않습니다.

이 문제에 대한 해결 방법이 있습니까?

현재 해결 방법은 onCompletion()에서 setVideoPath()를 호출하는 것입니다.이 경우에는 솔기가 맞지 않습니다.

1

이것은 Android 4.4.2의 버그입니다. 내 해결 방법 :

private String mVideoPath; 
private VideoView mVideoView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mVideoPath = "android.resource://" + getActivity().getPackageName() + "/" + R.raw.backvideo; 
} 

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 


    mVideoView = (VideoView) view.findViewById(R.id.videoBackground); 
    mVideoView.setVideoURI(Uri.parse(mVideoPath)); 
    mVideoView.setKeepScreenOn(true); 


    mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      mVideoView.setVideoURI(Uri.parse(mVideoPath)); 
      mVideoView.start(); 
     } 
    }); 

    mVideoView.start(); 
} 


@Override 
public void onPause() { 
    super.onPause(); 
    mVideoView.pause(); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    mVideoView.setVideoURI(Uri.parse(mVideoPath)); 
    mVideoView.start(); 
} 
관련 문제