import android.view.ViewGroup;
import android.webkit.MimeTypeMap;
import android.widget.ImageView;
-import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
import com.owncloud.android.operations.RemoveFileOperation;
import com.owncloud.android.ui.activity.FileDetailActivity;
import com.owncloud.android.ui.activity.FileDisplayActivity;
-import com.owncloud.android.ui.activity.TransferServiceGetter;
import com.owncloud.android.ui.fragment.ConfirmationDialogFragment;
import com.owncloud.android.ui.fragment.FileDetailFragment;
import com.owncloud.android.ui.fragment.FileFragment;
private RemoteOperation mLastRemoteOperation;
private MediaServiceBinder mMediaServiceBinder = null;
- //private MediaController mMediaController = null;
private MediaControlView mMediaController = null;
private MediaServiceConnection mMediaServiceConnection = null;
private VideoHelper mVideoHelper;
mMediaController = (MediaControlView)mView.findViewById(R.id.media_controller);
- //updateFileDetails(false);
return mView;
}
// load the video file in the video player ; when done, VideoHelper#onPrepared() will be called
mVideoPreview.setVideoPath(mFile.getStoragePath());
-
- //mVideoPreview.setMediaController(mMediaController);
}
mVideoPreview.start();
mMediaController.setEnabled(true);
mMediaController.updatePausePlay();
- //mMediaController.show(MediaService.MEDIA_CONTROL_SHORT_LIFE);
}
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.e(TAG, "Error in video playback, what = " + what + ", extra = " + extra);
- /*
- if (mMediaController != null) {
- mMediaController.hide();
- }
- */
-
if (mVideoPreview.getWindowToken() != null) {
String message = MediaService.getMessageForMediaError(getActivity(), what, extra);
new AlertDialog.Builder(getActivity())
if (mMediaServiceConnection != null) {
Log.d(TAG, "Unbinding from MediaService ...");
if (mMediaServiceBinder != null && mMediaController != null) {
- //mMediaServiceBinder.unregisterMediaController(mMediaController);
+ mMediaServiceBinder.unregisterMediaController(mMediaController);
}
getActivity().unbindService(mMediaServiceConnection);
mMediaServiceConnection = null;
mMediaServiceBinder = null;
- /*
- if (mMediaController != null) {
- mMediaController.hide();
- mMediaController = null;
- }
- */
}
}
} else {
if (!mMediaServiceBinder.isPlaying()) {
mMediaServiceBinder.start();
+ mMediaController.updatePausePlay();
}
- /*
- if (!mMediaController.isShowing() && isVisible()) {
- //mMediaController.show(MediaService.MEDIA_CONTROL_PERMANENT);
- // TODO - fix strange bug; steps to trigger :
- // 1. remove the "isVisible()" control
- // 2. start the app and preview an audio file
- // 3. exit from the app (home button, for instance) while the audio file is still being played
- // 4. go to notification bar and click on the "ownCloud music app" notification
- // PUM!
- }
- */
}
}
Log.d(TAG, "Media service connected");
mMediaServiceBinder = (MediaServiceBinder) service;
if (mMediaServiceBinder != null) {
- /*
- if (mMediaController == null) {
- mMediaController = new MediaController(getSherlockActivity());
- }
- */
prepareMediaController();
playAudio(); // do not wait for the touch of nobody to play audio
}
}
}
-
+
private void prepareMediaController() {
- //mMediaServiceBinder.registerMediaController(mMediaController);
+ mMediaServiceBinder.registerMediaController(mMediaController);
if (mMediaController != null) {
mMediaController.setMediaPlayer(mMediaServiceBinder);
mMediaController.setEnabled(true);
if (component.equals(new ComponentName(getActivity(), MediaService.class))) {
Log.e(TAG, "Media service suddenly disconnected");
if (mMediaController != null) {
- //mMediaController.hide();
mMediaController.setMediaPlayer(null);
- //mMediaController = null;
} else {
Toast.makeText(getActivity(), "No media controller to release when disconnected from media service", Toast.LENGTH_SHORT).show();
}
}
private void stopPreview(boolean stopAudio) {
- if (mMediaController != null) {
- //mMediaController.hide();
- }
if (mFile.isAudio() && stopAudio) {
mMediaServiceBinder.pause();