Android Mediaplayer使用变量播放本地文件

Android Mediaplayer使用变量播放本地文件,android,json,media-player,local,Android,Json,Media Player,Local,想知道是否有人可以帮我弄清楚如何在Android Mediaplayer中播放本地音频/视频文件…我可以使用保存URL地址的变量从URL流式传输音频/视频,但如何使用本地文件?如何使用localFile变量调用本地文件来播放?谢谢大家 package com.ryanleckey2; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.wi

想知道是否有人可以帮我弄清楚如何在Android Mediaplayer中播放本地音频/视频文件…我可以使用保存URL地址的变量从URL流式传输音频/视频,但如何使用本地文件?如何使用localFile变量调用本地文件来播放?谢谢大家

package com.ryanleckey2;






import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;


public class Audio_Video_Stream extends  BT_activity_base{


    private String localFile = "";
    private String localFileName = "";
    private String dataURL = "";
    private String currentURL = "";
    public String thisActivityName = "Screen_Video";

    //movie controller
    String videoUrl;
    VideoView videoView;
    MediaController mediaController;
    public int isLoading;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen_video);



        //fill JSON properties...
        dataURL = BT_strings.getJsonPropertyValue(this.screenData.getJsonObject(), "dataURL", "");
        currentURL = dataURL;

        localFileName = BT_strings.getJsonPropertyValue(this.screenData.getJsonObject(), "localFileName", "");


                //setup the saveAsFileName
                if(localFileName.length() > 1){

                    //use the file name in the JSON data...
                localFile = localFileName;  





        //Log.i("ZZ", thisActivityName + ":videoUrl : " + videoUrl);   

        videoView = (VideoView) findViewById(R.id.videoView);
        mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        isLoading = 0;
        }

    }   










    ///////////////////////////////////////////////////
    //activity life-cycle overrides

    //onStart
    @Override 
    protected void onStart(){
        super.onStart();
        //Log.i("ZZ", thisActivityName + ":onStart");
    }

    //onResume
    @Override
    public void onResume() {
        super.onResume();

        if(isLoading == 1){
            if(videoView != null){
                videoView = null;
            }
        }
        startMovie();
        //Log.i("ZZ", thisActivityName + ":onResume");
    }

    //onPause
    @Override
    public void onPause() {
        //Log.i("ZZ", thisActivityName + ":onPause");
        super.onPause();

        if(videoView != null){
            videoView = null;
        }
    }

    //onStop
    @Override 
    protected void onStop(){
        super.onStop();

        //Log.i("ZZ", thisActivityName + ":onStop");
    }   

    //onDestroy
    @Override
    public void onDestroy() {
        //Log.i("ZZ", thisActivityName + ":onDestroy");
        super.onDestroy();
    }

    //activity life-cycle overrides
    ///////////////////////////////////////////////////


    //starts movie
    public void startMovie(){

        //show progress for a few seconds..
        showProgress("Starting media stream...", "Please be patient. If you're on 3G this could take a bit.\nWi-Fi is much better for streaming.");
        isLoading = 1;

        try{
            //set audio/video link (mp4,mp3 format )
            mediaController = new MediaController(this);
            Uri uri = Uri.parse(currentURL);
            //Uri       uri=Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.);  
            videoView.setMediaController(mediaController);
            videoView.setVideoURI(uri);        
            videoView.setOnPreparedListener(mOnPreparedListener);

            videoView.start();

        }catch(Exception je){
        hideProgress();
            showAlert("Invalid URL","The URL to the media could not be determined. This screen will close.");
            finish();
        }

    }

    //onPrepared...
    private MediaPlayer.OnPreparedListener mOnPreparedListener = new MediaPlayer.OnPreparedListener(){
        public void onPrepared(MediaPlayer mp){
            //Log.i("ZZ", thisActivityName + ":OnPreparedListener");
            isLoading = 0;
        //  mp.setLooping(true);
        hideProgress();
        }
    };
}

我使用媒体播放器播放位于“我的资产”文件夹中的本地音频文件。下面是我的代码片段。如果您需要帮助,请告诉我。这些代码行位于try方法的内部

更新好的,我在黑暗中拍摄,但是让我们看看你是否可以将你的try方法与我的切换。首先,使用此导入:

导入android.content.res.AssetFileDescriptor

现在,在“try”括号内,尝试以下操作:

AssetFileDescriptor afd=getAssets().openFd(“YOURSOUNDORVIDEO.mp3/mpg”);
setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mp.prepare();
mp.start()//播放声音或视频

在我的代码中,mp代表mediaplayer。将它更改为您用来描述本地文件或播放器的任何内容,然后查看它是否有效。如果有问题,Android会告诉你出了什么问题。如果不行,我们就需要专业知识。但是你不能责怪noob gal的尝试,嗯?

Hi,是的,确实需要帮助实现…发生的是一个在线控制面板生成Json,告诉应用程序显示什么…所以如果我有一个本地文件的变量,并且本地文件在assets文件夹中,如何将其连接在一起?非常感谢你的帮助!Crud..你之前没有提到Json lol..我不知道hello world是什么,以前从未使用过它。坚持住,让我为你的“特殊”问题寻找解决方案:)谢谢!我真的很感谢你的帮助…也许我对这一切都是陌生的…站在旁边:)我同意,哈哈。你应该简单点。既然可以使用内置音频/电影播放器,为什么还要使用Json和变量?我对Json一无所知。如果你能让代码在你的代码中工作,我为你鼓掌。我只知道“那”是播放本地文件的方式。哈哈,我会提前告诉你——你的问题需要一个高级开发人员来回答。说到前辈,我的意思不是像我们这样的傻瓜:p至少没有人可以指责我,因为我是个女孩,我们可能会犯错误:)