2012-07-25 4 views
1

안녕하세요 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 

    } 

사람이 어떻게을 사용하는 방법을 가르쳐주십시오 수 있습니다 또는 어떻게 안드로이드에 자막 트랙을 표시 할 수 있는지에 대한 아이디어. 적은 SDK (16) (젤리 빈)에 비해 장치에서이 코드를 실행하기 때문에

감사

+0

해결책이 아니므로 getMimeType() 대신 MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP을 사용하십시오. –

답변

2

당신이 오류가 발생하는 경우, 그것은 아마이다. SDK 게이트에 포장해야합니다 :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
    mp.addTimedTextSource(... 
} 
관련 문제