媒体播放器: 错误 (-19, 0)
Media Player: error (-19, 0)
我有一个包含您位置的 GridView,我在 onCreate 上做案例,所以,
case position = 1 play audio1,
case position = 2 play audio2
Activity:
public class HomeEnglishAnimalsActivity extends ActionBarActivity {
MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_english_animals);
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
GridView gridView = (GridView) findViewById(R.id.gridviewHomeEnglishAnimals);
gridView.setAdapter(new AdapterHomeEnglishAnimalsActivity(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
switch (position) {
case 0:
if (player != null)
{
player.stop();
player.release();
}
player.create(HomeEnglishAnimalsActivity.this, R.raw.bee).setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
break;
好的,代码有效,但是当我点击几次时,声音停止显示这个错误:
06-16 23:52:42.976 23918-23918/br.gabrielrossetto.tap4learn E/ExtMediaPlayer-JNI? QCMediaPlayer could not be located....
06-16 23:52:42.976 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer-JNI? QCMediaPlayer mediaplayer NOT present
06-16 23:52:42.986 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer? Should have subtitle controller already set
06-16 23:52:42.996 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer? error (-19, 0)
06-16 23:52:42.996 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer? Error (-19,0)
感谢您的帮助。
您需要释放用于播放声音的MediaPlayer。查看此线程:Mediaplayer error (-19,0) after repeated plays
试试这个
当您创建 MediaPlayer 对象并启动播放器时,您需要在音乐完成时释放它。
MediaPlayer mp;
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.release();
};
});
}
我有一个包含您位置的 GridView,我在 onCreate 上做案例,所以,
case position = 1 play audio1,
case position = 2 play audio2
Activity:
public class HomeEnglishAnimalsActivity extends ActionBarActivity {
MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_english_animals);
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
GridView gridView = (GridView) findViewById(R.id.gridviewHomeEnglishAnimals);
gridView.setAdapter(new AdapterHomeEnglishAnimalsActivity(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
switch (position) {
case 0:
if (player != null)
{
player.stop();
player.release();
}
player.create(HomeEnglishAnimalsActivity.this, R.raw.bee).setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
break;
好的,代码有效,但是当我点击几次时,声音停止显示这个错误:
06-16 23:52:42.976 23918-23918/br.gabrielrossetto.tap4learn E/ExtMediaPlayer-JNI? QCMediaPlayer could not be located....
06-16 23:52:42.976 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer-JNI? QCMediaPlayer mediaplayer NOT present
06-16 23:52:42.986 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer? Should have subtitle controller already set
06-16 23:52:42.996 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer? error (-19, 0)
06-16 23:52:42.996 23918-23918/br.gabrielrossetto.tap4learn E/MediaPlayer? Error (-19,0)
感谢您的帮助。
您需要释放用于播放声音的MediaPlayer。查看此线程:Mediaplayer error (-19,0) after repeated plays
试试这个
当您创建 MediaPlayer 对象并启动播放器时,您需要在音乐完成时释放它。
MediaPlayer mp;
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.release();
};
});
}