2013-03-28 16 views
10

助けてください、 オフラインモードの生のフォルダからアンドロイドデバイスの動画を再生するには?Androidデバイスで生のフォルダから動画を再生するには?

成功例1:私は以下のコードを使用してSDカードからビデオを再生することができます。

Intent intent = new Intent(Intent.ACTION_VIEW); 
String type = "video/mp4"; 
Uri uri = Uri.parse("file:///sdcard/test.mp4"); 
intent.setDataAndType(uri, type); 
startActivity(intent); 

失敗例2: 質問:私はRES /生フォルダにtest.mp4を入れてもいいですか?

Intent intent = new Intent(Intent.ACTION_VIEW); 
String type = "video/mp4"; 
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.taipei); 
intent.setDataAndType(uri, type); 
startActivity(intent); 

誰でも手伝ってもらえますか?お願いします。

答えて

3

チェックこのソリューションHow to play videos in android from assets folder or raw folder?

VideoView videoHolder = new VideoView(this); 
//if you want the controls to appear 
videoHolder.setMediaController(new MediaController(this)); 
Uri video = Uri.parse("android.resource://" + getPackageName() + "/" 
+ R.raw.your_raw_file); //do not add any extension 
//if your file is named sherif.mp4 and placed in /raw 
//use R.raw.sherif 
37

プロジェクトの解像度/生のフォルダにビデオをコピーします。 resフォルダの下に生のフォルダを作成します。サポートされているフォーマット(3gp、wmv、mp4)で、ファイル名に小文字、数字、アンダースコア、およびドットを付けて名前を付けなければなりません(video_file.mp4)。

VideoView view = (VideoView)findViewById(R.id.videoView); 
String path = "android.resource://" + getPackageName() + "/" + R.raw.video_file; 
view.setVideoURI(Uri.parse(path)); 
view.start(); 

xmlファイルにvideoViewを作成します。

+0

こんにちは、私はあなたのコードを使用して、以下のような問題を取得しています: MediaPlayerの:できないメディアプレーヤー setDataSourceにIOExceptionを作成するためには起こった: –

+0

はどうもありがとうございました!!! * getPackageName()*は私を救った! – Pontios

+1

私は既に 'res/raw'の下にフォルダを持っていますが、別の解像度のビデオを持っているとどうなりますか?つまり320x240,640x480,1280x720などです。どのようにしてそれぞれ別のフォルダを作成しますか? – Johny

2
// To get files from any resource folder (eg: raw, drawable, etc.) 
// Use the resource id 
int rawId = getResources().getIdentifier(file_name_without_extension, "raw", getPackageName()); 

// URI formation 
String path = "android.resource://" + getPackageName() + "/" + rawId; 

// Set the URI to play video file 
videoView.setVideoURI(Uri.parse(path)); 
+0

コードには、説明のためだけに十分なコメントがない限り、解答が出にくいコードとして説明する必要があります。 –

0

これは動的な動画名では苦労しました。私のために働いたソリューションました:

//Somewhere set the video name variable 
String video+name="myvideo"; 
//setup up and play video 

VideoView videoView=(VideoView)findViewById(R.id.video); 
videoView.setVisibility(View.VISIBLE); 
String uriPath = "android.resource://"+getPackageName()+"/raw/"+ video_name; 
Uri UrlPath=Uri.parse(uriPath); 
MediaController mediaController = new MediaController(this); 
mediaController.setAnchorView(videoView); 
videoView.setMediaController(mediaController); 
videoView.setVideoURI(UrlPath); 

videoView.setOnPreparedListener(new OnPreparedListener() { 
     public void onPrepared(MediaPlayer mediaPlayer) { 
      if (position == 0) { 
       try{ 
        videoView.requestFocus(); 
        videoView.start(); 
       }catch (Exception e){ 
        System.out.printf("Error playing video %s\n", e); 
       } 
      }else{ 
       videoView.pause(); 
      } 

     } 
}); 

そしてXML

<VideoView android:layout_width="300dp" 
    android:id="@+id/video" 
    android:layout_height="300dp" 
    android:orientation="horizontal" 
    android:layout_gravity="center" 
    android:keepScreenOn="true" 
    /> 
1

で私は考えて、誰もが答えを与えたが、シナリオを説明していません。ここでの主な問題は、誤解されていない場合、AndroidはSDカードからのビデオがダイナミックであると想定しています。フォーマットはサポートされていないか、サポートされていない可能性があるため、選択/他のサードパーティ製のメディアソフトウェア用です。

あなたがUNDER RAWフォルダを再生するには、videoviewや組み込みのメディアプレーヤーなどのハンドラが必要ですが、RAWフォルダに置いたものはAndroid OSでサポートされていなければなりません。

ただし、スレッドスターターは、R​​AWファイルをサードパーティーのメディアプレーヤーを使用して再生することを望んでいます。

0

このソリューションは、あなたが望むものを正確にお届けします。

VideoView myVideo; 
private MediaController media_control; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myVideo = (VideoView) findViewById(R.id.playVideo); 

    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bootanimation_nexus); 

    media_control = new MediaController(this); 

    myVideo.setMediaController(media_control); 

    myVideo.setVideoURI(uri); 

    myVideo.start(); 

} 
+0

bootanimationnexusは、生のフォルダ内の動画の名前です –

関連する問題