我正在尝试使用按钮将视频从图库加载到VideoView。 当我运行我的应用时,点击加载视频按钮,它会加载视频但 仅播放该视频文件的音频。
我还在清单文件中添加了READ_EXTERNAL_STORAGE权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
这是我的VideoView:
<VideoView
android:layout_width="wrap_content"
android:layout_height="250dp"
android:id="@+id/videoView"
android:layout_centerVertical="true"
android:layout_alignParentStart="true" />
请帮帮我
我的代码:
public class MainActivity extends AppCompatActivity {
VideoView videoField;
Button LoadVid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LoadVid = (Button)findViewById(R.id.LoadVid);
videoField = (VideoView)findViewById(R.id.videoView);
LoadVid.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
Uri video = data.getData();
videoField.setVideoURI(video);
videoField.start();
}
}
}
答案 0 :(得分:3)
您应该将setVideoURI
代码放在try catch
块中,如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
Uri uri = data.getData();
try{
videoField.setVideoURI(uri);
videoField.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
它现在应该可以使用,因为我已经测试了它。