web-dev-qa-db-ja.com

Androidデバイスでrawフォルダーからビデオを再生する方法?

Androidオフラインモードのrawフォルダーからデバイスで動画を再生する方法は?

成功例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:質問:test.mp4をres/rawフォルダーに入れてもいいですか?

 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); 

誰も私を助けることができますか?お願いします。

17
Potato Hwang

ビデオをプロジェクトのres/rawフォルダーにコピーします。 resフォルダーの下にrawフォルダーを作成します。サポートされている形式(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を作成します。

47
AkashG
// 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));
5
Shrinithi

このソリューションを確認してください Androidで動画をアセットフォルダーまたはrawフォルダーから再生する方法は?

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
3
duggu

私のコードでは、「applicationdemo」はビデオファイルの名前です。

    String video_url = "Android.resource://" + context.getPackageName() + "/" + R.raw.applicationdemo;
    final VideoView videoView = findViewById(R.id.dialog_video);
    Uri videoUri = Uri.parse(video_url);
    MediaController mediaController= new MediaController(context);
    mediaController.setAnchorView(videoView);
    videoView.setMediaController(mediaController);
    videoView.setVideoURI(videoUri);
    videoView.requestFocus();
    videoView.start();
1
Bhaumik Belani

誰もが答えたと思うが、シナリオを説明していない。ここでの主な問題は、間違っていない場合、AndroidあなたのSDカードから来るビデオが動的であり、可能な場合、フォーマットがサポートされていないか、サポートされていないことを前提としています他のサードパーティのメディアソフトウェアを選択するか、開くように要求します。

RAWフォルダーの下で再生するものはすべて、videoviewや組み込みのメディアプレーヤーなどのハンドラーを必要とします。これにより、RAWフォルダーに入れるものはすべて、Android OS.

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

1
jhaypee

ダイナミックなビデオ名を得るためにこれに苦労しました。私のために働いた解決策は次のとおりでした:

//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"
    />
0
JanB

このソリューションは、まさにあなたが望むものを支援します。

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();

}