如何将每个视频文件与其标题关联并自动加载?

时间:2018-11-04 14:29:43

标签: java android

我是Android编程的新手,但我仍然不了解某些部分。

我正在尝试将您使用的每个视频文件与其字幕文件相关联,以便在视频开始播放时可以自动加载字幕。 有.vtt类型的字幕文件和一些视频。

所以我的问题是,如果我有其他视频,如何将合适的字幕上传到特定视频。

目前,我已经编写了代码,但似乎没有用。 我想将每个字幕文件都与其视频关联。

如何为其设置自动加载字幕,以便在加载视频command.mp4时出现字幕文件subs2.tvv,如果出现Windows10.mp4-subs.tvv和make。

这是我的代码:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vv = (VideoView) findViewById(R.id.video_view);

    }

    // Use intent to start system app that allow selection of video file
    void playVideo(View view) {
        Intent i = new Intent();
        i.setType("video/mp4");
        i.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(i, "Select Video"), PICK_VIDEO_REQUEST);
    }

    // Use intent to start system settings on Captioning
    void capSettings(View view) {
        startActivityForResult(new Intent(Settings.ACTION_CAPTIONING_SETTINGS), 113);
    }

 @Override
        protected void onActivityResult ( int requestCode, int resultCode, Intent data){
            super.onActivityResult(requestCode, resultCode, data);

            if (requestCode == PICK_VIDEO_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {

                Uri uri = data.getData();
                //videoLoaded = true;
                mc = new MediaController(this);
                vv.setMediaController(mc);
                vv.setVideoURI(uri);
                vv.start();

                returnCursor =
                        getContentResolver().query(uri, null, null, null, null);
                int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
                returnCursor.moveToFirst();
                videoDurationText = (TextView) findViewById(R.id.videoDurationText);
                videoDurationText.setText("Video name: " + "\"" + returnCursor.getString(nameIndex) + "\" ");

            }
        }
//при нажатии кнопки вызывается этот метод по onClick
 void loadCaptions(View view) {

        if (returnCursor.getString(nameIndex)=="command.mp4") {
            vv.addSubtitleSource(getResources().openRawResource(R.raw.subs2), MediaFormat.createSubtitleFormat(
                    "text/vtt", Locale.ENGLISH.getLanguage()));
        }
        if( returnCursor.getString(nameIndex)=="Windows10.mp4")
        {
            vv.addSubtitleSource(getResources().openRawResource(R.raw.subs), MediaFormat.createSubtitleFormat(
                    "text/vtt", Locale.ENGLISH.getLanguage()));
        }
}

0 个答案:

没有答案