2010-08-31 12 views
18

posso riprodurre un video da Internet inserendo l'URL come qui di seguito:Cercando di riprodurre video dalla cartella grezzo (VideoView)

mPath = Uri.parse("http://commonsware.com/misc/test2.3gp"); 
mVid.setVideoURI(mPath); 
mVid.requestFocus(); 
mVid.start(); 

Ma ora ho un video nella mia cartella grezzo in modo che il percorso è res /raw/testing.3gp. Il codice qui sotto non funziona, e ho provato anche in altri modi inutilmente.

mPath = Uri.parse("../../res/raw/testing.3gp"); 

Qualche suggerimento?

+1

okay ... Ho trovato il codice con cui avevo lavorato prima con video diversi, ma ora non funziona. mPath \t = Uri.parse ("android: resource: //com.example.wordweather/" + R.raw.scott); – taraloca

+0

Possibile duplicato di [Come riprodurre video in Android dalla cartella delle risorse o dalla cartella raw?] (Http://stackoverflow.com/questions/3028717/how-to-play-videos-in-android-from-assets-folder- o-raw-folder) –

risposta

32

Ho avuto lo stesso problema. Questo ha funzionato per me:

Uri video = Uri.parse("android.resource://com.pac.myapp/raw/master"); 

Quindi, come vedi si hanno 3 parti del uri: 1) "android.resource: //" 2) "com.pac.myapp" 3) "/ raw/master"

'master' è il nome del tuo video

+0

Vorrei poter contrassegnare questo come la risposta corretta. Questo mi ha aiutato così tanto !! Grazie. – dfetter88

+13

Che non ha funzionato per me .. Ho avuto il temuto 'questo video non può essere riprodotto errore'. Tuttavia, ciò che funzionava era Uri url = Uri.parse ("android.resource: //com.calvium.myApp/" + R.raw.video); (dove la mia risorsa video è stata chiamata 'video.3gp'.) –

+0

Questa soluzione ha funzionato per me. Tuttavia, sono sospettoso che funzioni su qualsiasi altra versione/dispositivo del sistema operativo, ad esempio ci sono un sacco di persone che hanno segnalato il "R.raw" . * "Funzionerà invece la versione.Qualcuno può elaborare ciò che ci si potrebbe aspettare da VideoView? – JakeP

6

questo funziona per me

String videoName = nameWithoutFileExtention; 

int id = getResources().getIdentifier(videoName, "raw", getActivity().getPackageName()); 

final String path = "android.resource://" + getActivity().getPackageName() + "/" + id; 

vvBgVideo.setVideoURI(Uri.parse(path)); 
0

Hai solo bisogno di individuare brano nella cartella grezzo sotto cartella delle risorse. se si tratta di collegamento allora

private String urlVideo ="http://www.pocketjourney.com/downloads/pj/video/famous.3gp"; 

    //Make uri from song located in raw folder 
     Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" 
       + R.raw.shakebooty); 
     player.setUpVideoFrom(uri.toString()); 

     public void setUpVideoFrom(String source) throws IllegalArgumentException, 
       IllegalStateException, IOException { 

      mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 

//Only to check if you want to play song from url 
      if (source.contains("http")) 
      { 
      mPlayer.setDataSource(source); 
      } 
//If want to play song from uri you created from song in raw folder 
     else { 
      mPlayer.setDataSource(ctx, source); 
      } 

     } 

Godetevi la riproduzione di video in superficie vista

1
public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button btn=(Button)this.findViewById(R.id.playvideo); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       VideoView vid=(VideoView)findViewById(R.id.video); 
       vid.setMediaController(new MediaController(MainActivity.this)); 
       Uri video = Uri.parse("android.resource://com.example.tenzinthinley.video/raw/ed"); 
       vid.setVideoURI(video); 
       vid.requestFocus(); 
       vid.start(); 
      } 
     }); 
    } 
} 

cambiare il mio nome se questo non fa opere. 'ed' è il nome del file video.

Problemi correlati