Autore Topic: "Video" quando lancio app  (Letto 723 volte)

Offline Teo

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E / Xoom2
  • Sistema operativo:
    Mac OS X 10.8
"Video" quando lancio app
« il: 06 Dicembre 2012, 19:02:50 CET »
0
Ciao a tutti, probabilmente è una domanda stupida, ma mi potereste spiegare come posso visualizzare un piccolo video quando lancio l'app??

Per capirci, intendo i soliti video, in cui vengono mostrati i vari loghi dell'applicazione..

Grazie  :-)

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:"Video" quando lancio app
« Risposta #1 il: 07 Dicembre 2012, 08:26:08 CET »
+1
Eccoti un esempio mio in cui faccio pure il download di un video da internet :)
Codice (Java): [Seleziona]
public class VideoPlayer extends Activity {
/////////////////////////Attribute
private VideoView mVideoView;
private String pathVideo;
//////////////////////////////////costruttore  
@Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.show_video);
                pathVideo = getIntent().getExtras().getString("path");//qui mi prendo il path del video
                //pathVideo="[url=http://www.youtube.com/watch?v=9OiKzw9YM3E&feature=youtube_gdata_player";]DSCN3815.MOV - YouTube[/url]
                //link due=http://www.youtube.com/watch?v=BEHFQKj9H9k&feature=g-vrec.mp4
                //private String path = "http://dl.dropbox.com/u/145894/t/rabbits.3gp";
                mVideoView = (VideoView) findViewById(R.id.surface_view);
                try{
                        mVideoView.setVideoURI(Uri.parse(pathVideo));//uso questo per far partire il file salvato temporaneamente
                }catch(Exception e){
                        try {
                                mVideoView.setVideoPath(getDataSource(pathVideo));//uso questo per il semplice path che ho del video
                        } catch (IOException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                        }
                }
                mVideoView.requestFocus();
                mVideoView.start();
        }
/////////////////////////////////////metodi
////////////////////////////
//touch schermo vuoto
  public boolean onTouchEvent(MotionEvent event) {
        super.onTouchEvent(event);
        int action = event.getAction();
                if(action == MotionEvent.ACTION_DOWN) {
                        mVideoView.pause();
                        finish();
                        return true;
                }
        return false;
        }
/////////////////////////////////si occupa della gestione della connessione e streaming
  private String getDataSource(String path) throws IOException {
      if (!URLUtil.isNetworkUrl(path)) {
          return path;
      }else{
          URL url = new URL(path);
          URLConnection cn = url.openConnection();
          cn.connect();
          InputStream stream = cn.getInputStream();
          if (stream == null)
              throw new RuntimeException("stream is null");
          File temp = File.createTempFile("mediaplayertmp", "mp4");
          temp.deleteOnExit();
          String tempPath = temp.getAbsolutePath();

          FileOutputStream out = new FileOutputStream(temp);
          byte buf[] = new byte[128];
          do {
              int numread = stream.read(buf);
              if (numread <= 0)
                  break;
              out.write(buf, 0, numread);
          } while (true);
          try {
              stream.close();
          } catch (IOException ex) {
              //error
          }
          return tempPath;
      }
  }
 }
Naturalmente questa è la prima cosa che lancerai..poi quando il video finisce mostri la tua app
« Ultima modifica: 07 Dicembre 2012, 12:01:15 CET da MisterAnt »
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline Teo

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E / Xoom2
  • Sistema operativo:
    Mac OS X 10.8
Re:"Video" quando lancio app
« Risposta #2 il: 07 Dicembre 2012, 08:36:27 CET »
0
Grazie  ;-)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:"Video" quando lancio app
« Risposta #3 il: 07 Dicembre 2012, 11:54:26 CET »
0
Eccoti un esempio mio in cui faccio pure streaming :)

Dalla definizione di streaming la decodifica e la riproduzione avviene durante la ricezione dei dati appena possibile. Dal codice che hai postato salvi tutti i dati in un file temporaneo e poi lo riproduci, questo non è streaming.

Android sopporta lo streaming nella classe "MediaPlayer", i protocolli sopportati sono quelli più comuni con specifiche pubbliche:

MediaPlayer | Android Developers

« Ultima modifica: 07 Dicembre 2012, 12:28:22 CET da iceweasel »
adb logcat | tee /tmp/logcat | grep TAG

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:"Video" quando lancio app
« Risposta #4 il: 07 Dicembre 2012, 12:00:49 CET »
0
Corretto!
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline punticci

  • Utente junior
  • **
  • Post: 78
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
Re:"Video" quando lancio app
« Risposta #5 il: 22 Maggio 2013, 11:53:24 CEST »
0
Eccoti un esempio mio in cui faccio pure il download di un video da internet :)
Codice (Java): [Seleziona]
public class VideoPlayer extends Activity {
/////////////////////////Attribute
private VideoView mVideoView;
private String pathVideo;
//////////////////////////////////costruttore  
@Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.show_video);
                pathVideo = getIntent().getExtras().getString("path");//qui mi prendo il path del video
                //pathVideo="[url=http://www.youtube.com/watch?v=9OiKzw9YM3E&feature=youtube_gdata_player";]DSCN3815.MOV - YouTube[/url]
                //link due=http://www.youtube.com/watch?v=BEHFQKj9H9k&feature=g-vrec.mp4
                //private String path = "http://dl.dropbox.com/u/145894/t/rabbits.3gp";
                mVideoView = (VideoView) findViewById(R.id.surface_view);
                try{
                        mVideoView.setVideoURI(Uri.parse(pathVideo));//uso questo per far partire il file salvato temporaneamente
                }catch(Exception e){
                        try {
                                mVideoView.setVideoPath(getDataSource(pathVideo));//uso questo per il semplice path che ho del video
                        } catch (IOException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                        }
                }
                mVideoView.requestFocus();
                mVideoView.start();
        }
/////////////////////////////////////metodi
////////////////////////////
//touch schermo vuoto
  public boolean onTouchEvent(MotionEvent event) {
        super.onTouchEvent(event);
        int action = event.getAction();
                if(action == MotionEvent.ACTION_DOWN) {
                        mVideoView.pause();
                        finish();
                        return true;
                }
        return false;
        }
/////////////////////////////////si occupa della gestione della connessione e streaming
  private String getDataSource(String path) throws IOException {
      if (!URLUtil.isNetworkUrl(path)) {
          return path;
      }else{
          URL url = new URL(path);
          URLConnection cn = url.openConnection();
          cn.connect();
          InputStream stream = cn.getInputStream();
          if (stream == null)
              throw new RuntimeException("stream is null");
          File temp = File.createTempFile("mediaplayertmp", "mp4");
          temp.deleteOnExit();
          String tempPath = temp.getAbsolutePath();

          FileOutputStream out = new FileOutputStream(temp);
          byte buf[] = new byte[128];
          do {
              int numread = stream.read(buf);
              if (numread <= 0)
                  break;
              out.write(buf, 0, numread);
          } while (true);
          try {
              stream.close();
          } catch (IOException ex) {
              //error
          }
          return tempPath;
      }
  }
 }
Naturalmente questa è la prima cosa che lancerai..poi quando il video finisce mostri la tua app
Funziona anche in caso di immagini?

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:"Video" quando lancio app
« Risposta #6 il: 22 Maggio 2013, 14:08:50 CEST »
0
In teoria dovrebbe funzionare per ogni genere di file...
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?