Autore Topic: MediaController: gestire pulsante back  (Letto 670 volte)

Offline R1((ky

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    SmartPad 850i
MediaController: gestire pulsante back
« il: 16 Ottobre 2012, 11:10:00 CEST »
0
Salve a tutti, ho una mia applicazione che tra le altre cose esegue la riproduzione di video in streaming.

Tutto funziona correttamente, però avrei 2 quesiti:

- come poter aprire alla partenza del video il MediaController e tenerlo aperto senza che dopo 3 secondi si chiuda (la seconda parte la so fare, l'apertura all'avvio no)
- più importante: una volta che apro il MediaController (anche tappando sullo schermo manualmente) il pulsante BACK non chiude l'activity corrente, devo farlo più volte per avere un risultato.

Ho tentato con:

Codice (Java): [Seleziona]
@Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
               
               this.finish();
            }
            return super.onKeyDown(keyCode, event);
        }

ma non succede nulla.

Allego sorgente


Codice (Java): [Seleziona]
package com.app.bms;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;

public class VideoViewer extends Activity {

        public void showAlertDialog(Context context, String title, String message,
                        Boolean status) {
                AlertDialog alertDialog = new AlertDialog.Builder(context).create();

                // Setting Dialog Title
                alertDialog.setTitle(title);

                // Setting Dialog Message
                alertDialog.setMessage(message);

                // Setting alert dialog icon
                alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);

                // Setting OK Button
                alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                        }
                });

                // Showing Alert Message
                alertDialog.show();
        }

        /**
         * TODO: Set the path variable to a streaming video URL or a local media
         * file path.
         */


        private static final String TAG_VIDEO = "video";

        private String videoPath = "";
        private VideoView mVideoView;

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK) {

                        this.finish();
                }
                return super.onKeyDown(keyCode, event);
        }

        @Override
        public void onCreate(Bundle icicle) {
                super.onCreate(icicle);
                setContentView(R.layout.video_view);

                ConnectionDetector cd = new ConnectionDetector(getApplicationContext());

                Boolean isInternetPresent = cd.isConnectingToInternet();
                if (isInternetPresent != true) {
                        showAlertDialog(VideoViewer.this,
                                        getResources().getString(R.string.Connection),
                                        getResources().getString(R.string.NoConnection), false);
                }

                else {

                        // getting product details from intent
                        Intent i = getIntent();

                       
                        videoPath = (i.getStringExtra(TAG_VIDEO));

                        mVideoView = (VideoView) findViewById(R.id.surface);

                        if (videoPath == "") {
                                // Tell the user to provide a media file URL/path.
                                Toast.makeText(VideoViewer.this,
                                                "Percorso video non raggiungibile", Toast.LENGTH_LONG)
                                                .show();

                        } else {

                                mVideoView.setVideoPath(videoPath);
                                mVideoView.setMediaController(new MediaController(this));

                                mVideoView.requestFocus();
                                mVideoView.start();

                        }
                }
        }
}