Android Mediaplayer使用变量播放本地文件
想知道是否有人可以帮我弄清楚如何在Android Mediaplayer中播放本地音频/视频文件…我可以使用保存URL地址的变量从URL流式传输音频/视频,但如何使用本地文件?如何使用localFile变量调用本地文件来播放?谢谢大家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
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至少没有人可以指责我,因为我是个女孩,我们可能会犯错误:)