android - 在 Android 媒体播放器中添加字幕轨道

标签 android android-mediaplayer

嗨,我是 Android 开发新手。我想在我的 Android 应用程序中向媒体播放器添加字幕。我搜索并找到了一个方法,即 addTimedTextSource(...) 但它给出了错误 java.lang.NoSuchMethodError:android.media.MediaPlayer.addTimedTextSource

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.video_view);
        mp = new MediaPlayer();
//        vw = (VideoView)findViewById(R.id.video_intent);
        Intent intent = getIntent();
        path = intent.getStringExtra("path");
        Log.d("File path ::::::::::::::::::",path);

        try {
            mp.setDataSource("file://"+path);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mp.start();
        String mimeType = getMimeType("file://mnt/sdcard/BarbieGirl.srt");
//      mp.selectTrack(index);
        try {
            mp.addTimedTextSource(path, mimeType);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    @Override
    public void onCompletion(MediaPlayer mp) {
        // TODO Auto-generated method stub

    }
    @Override
    public void onPrepared(MediaPlayer mp) {
        // TODO Auto-generated method stub

    }

谁能告诉我如何使用这个或任何关于如何在 android 中显示字幕轨道的想法。

谢谢

最佳答案

如果您收到该错误,可能是因为您在低于 SDK 16 (Jelly Bean) 的设备上运行此代码。您应该将其包装在 SDK 门中:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
   mp.addTimedTextSource(...
}

关于android - 在 Android 媒体播放器中添加字幕轨道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11643814/

相关文章:

java - getStringArrayListExtra 给我一个空值,但我有值

android - MediaPlayer getCurrentPosition() 问题

android - 捕捉安卓媒体按钮事件

java - MediaPlayer、打瞌睡模式、唤醒锁和前台服务

Android:检测水平 ScrollView 何时停止滚动

android - SwipeListView 前端点击bug 2.3 android

android - MediaPlayer 接到电话时不停止

java - 初学者android帮助从可运行内部播放音频

java - 来自 R.raw.file 的 Android FileReader

java - 获取回收器 View 位置给出 NullPointerException