import com.owncloud.android.AccountUtils;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.media.MediaService;
/**
* Activity implementing a basic video player.
/** Key to receive the ownCloud {@link Account} where the file to play is saved as an extra value in an {@link Intent} */
public static final String EXTRA_ACCOUNT = "ACCOUNT";
- // Time To keep the control panel visible when the user does not use it
- private static final int MEDIA_CONTOL_LIFE = 5000;
-
- private static final int OC_MEDIA_ERROR = 0;
private static final String TAG = null;
private OCFile mFile; // video file to play
mVideoPlayer.setVideoURI(Uri.parse(url));
} else {
- onError(null, OC_MEDIA_ERROR, R.string.media_err_no_account);
+ onError(null, MediaService.OC_MEDIA_ERROR, R.string.media_err_no_account);
}
// create and prepare control panel for the user
mVideoPlayer.setMediaController(mMediaController);
} else {
- onError(null, OC_MEDIA_ERROR, R.string.media_err_nothing_to_play);
+ onError(null, MediaService.OC_MEDIA_ERROR, R.string.media_err_nothing_to_play);
}
}
*/
@Override
public void onPrepared(MediaPlayer vp) {
- mVideoPlayer.start(); // TODO maybe unnecessary
- //mMediaController.show(5000); // TODO maybe unnecessary; maybe not, it's up when the Surface notifies the VideoView about creation
+ mVideoPlayer.start();
+ mMediaController.show(5000);
}
}
if (mVideoPlayer.getWindowToken() != null) {
- int messageId;
- if (what == OC_MEDIA_ERROR) {
- messageId = extra;
-
- } else if (what == MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK) {
- messageId = android.R.string.VideoView_error_text_invalid_progressive_playback;
-
- } else {
- // what == MediaPlayer.MEDIA_ERROR_UNKNOWN or MEDIA_ERROR_SERVER_DIED
- messageId = android.R.string.VideoView_error_text_unknown;
-
- }
+ String message = MediaService.getMessageForMediaError(this, what, extra);
new AlertDialog.Builder(this)
- .setMessage(messageId)
+ .setMessage(message)
.setPositiveButton(android.R.string.VideoView_error_button,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
.setCancelable(false)
.show();
}
-
-
- /*
- switch (what) {
- case MediaPlayer.MEDIA_ERROR_UNKNOWN:
- /*Added in API level 1
- Unspecified media player error.
- Constant Value: 1 (0x00000001)
- *-/
- break;
-
- case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
- /* Added in API level 1
- Media server died. In this case, the application must release the MediaPlayer object and instantiate a new one.
- Constant Value: 100 (0x00000064) *-/
- break;
-
- case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
- /* Added in API level 3
- The video is streamed and its container is not valid for progressive playback i.e the video's index (e.g moov atom) is not at the start of the file.
- See Also
- MediaPlayer.OnErrorListener
- Constant Value: 200 (0x000000c8)
- *-/
- break;
-
- /// under this, seems they are values for extra
- case MediaPlayer.MEDIA_ERROR_UNSUPPORTED:
- /* Added in API level 17
- Bitstream is conforming to the related coding standard or file spec, but the media framework does not support the feature.
- Constant Value: -1010 (0xfffffc0e)
- *-/
- break;
-
- case MediaPlayer.MEDIA_ERROR_IO:
- /* Added in API level 17
- File or network related operation errors.
- Constant Value: -1004 (0xfffffc14) *-/
- break;
-
- case MediaPlayer.MEDIA_ERROR_MALFORMED:
- /* Added in API level 17
- Bitstream is not conforming to the related coding standard or file spec.
- Constant Value: -1007 (0xfffffc11) *-/
- break;
-
- case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
- /*Added in API level 17
- Some operation takes too long to complete, usually more than 3-5 seconds.
- Constant Value: -110 (0xffffff92)
- *-/
- break;
- }
- */
-
return true;
}
@Override
public boolean onTouchEvent (MotionEvent ev){
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
- mMediaController.show(MEDIA_CONTOL_LIFE);
+ mMediaController.show(MediaService.MEDIA_CONTROL_SHORT_LIFE);
return true;
} else {
return false;