2

こんにちは、私は 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

    }

これを使用する方法や、アンドロイドで字幕トラックを表示する方法についてのアイデアを教えてください。

ありがとう

4

1 に答える 1

3

このエラーが発生する場合は、SDK 16 (Jelly Bean) より前のデバイスでこのコードを実行している可能性があります。SDK ゲートでラップする必要があります。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
   mp.addTimedTextSource(...
}
于 2012-07-28T19:38:20.597 に答える