2017-06-02 86 views
0

我知道有一些類似的問題,但沒有人回答我的問題。當我點擊一個按鈕時,媒體播放器被調用,並且這出現在日誌中。MediaPlayer中的錯誤:E/MediaPlayer:錯誤(1,-19) - Android

06-02 00:20:38.980 26035-26035/myapp.com.facadezpontos E/MediaPlayer-JNI: QCMediaPlayer mediaplayer NOT present 
06-02 00:20:39.019 26035-26035/myapp.com.facadezpontos E/MediaPlayer: Should have subtitle controller already set 
06-02 00:20:39.026 26035-26035/myapp.com.facadezpontos E/MediaPlayer: Should have subtitle controller already set 

一段時間後,這條消息以上是由該波紋管取代了,聲音通過媒體播放器提供不玩了。

06-02 00:23:21.032 28749-28749/myapp.com.facadezpontos E/MediaPlayer-JNI: QCMediaPlayer mediaplayer NOT present 
06-02 00:23:21.076 28749-28749/myapp.com.facadezpontos E/MediaPlayer: Should have subtitle controller already set 
06-02 00:23:21.090 28749-28749/myapp.com.facadezpontos E/MediaPlayer: Should have subtitle controller already set 
06-02 00:23:21.396 28749-28772/myapp.com.facadezpontos E/MediaPlayer: error (1, -19) 
06-02 00:23:21.396 28749-28749/myapp.com.facadezpontos E/MediaPlayer: Error (1,-19) 

這是在MediaPlayer

public void buttonClick(Context context, MediaPlayer mp){ 
     mp = MediaPlayer.create(context, R.raw.bubble_nice); 
     mp.start(); 
    } 
+0

的可能的複製(https://stackoverflow.com/questions/24501086/why-mediaplayer -throws-not-present-error-when-creating-instance-of-it) – Isaac

+0

這個問題沒有解決問題 – Felipe

+0

@Felipe你解決了這個問題嗎? –

回答

0

我解決了這個問題的代碼!

我改變了我稱之爲聲音文件的方式,下面是我如何做到的。

我把這個文件放在資產裏面,以使它工作。

if(mp.isPlaying()) 
    { 
     mp.stop(); 
    } 

    try { 
     mp.reset(); 
     AssetFileDescriptor afd; 
     afd = getAssets().openFd("AudioFile.mp3"); 
     mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength()); 
     mp.prepare(); 
     mp.start(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

我得到這個從這裏:爲什麼創建的MediaPlayer它的實例時拋出不存在錯誤] android - how to make a button click play a sound file every time it been pressed?