我学习Android和我已经创建了一个有两个按钮的活动:切换按钮(播放/暂停)和一个按钮(下一步)。我有两首歌曲,就是想在pressing下一步进行循环。我有一个数组
I'm learning Android and I've created an activity that has two buttons:A ToggleButton(Play/Pause) and a Button(Next). I have two songs that would like to be cycled upon pressing Next. I have an array
INT [] =歌曲{R.raw.song1,R.raw.song2};
我推翻onClick的在我的活动。第一首歌发挥的罚款;但经过pressing接下来,我得到以下错误:
I overrode the onClick in my Activity. The first song plays fine; but after pressing Next, I get the following errors:
可以在客户端无法打开文件,试图服务器端
Couldn't open file on client side, trying server side
E / MediaPlayer的(3107):启动名为状态4
E/MediaPlayer(3107): start called in state 4
E / MediaPlayer的(3107):错误(-38,0)
E/MediaPlayer(3107): error (-38, 0)
E / MediaPlayer的(3107):错误(-38,0)
E/MediaPlayer(3107): Error (-38,0)
E / MediaPlayer的(3107):错误(1,-2147483648)
E/MediaPlayer(3107): error (1, -2147483648)
E / MediaPlayer的(3107):错误(1,-2147483648)
E/MediaPlayer(3107): Error (1,-2147483648)
在的onCreate(捆绑...),
In onCreate(Bundle...),
if(mp!=null) mp.release();
mp=MediaPlayer.create(this, songs[count]);
下面是我的onClick(视图v)方法:
Here's my onClick(View v) method:
public void onClick(View view) {
Log.v(TAG,"ID:"+view.getId());
switch (view.getId()) {
case R.id.playerbutton: //ToggleButton
if(state==0) {
mp.start();
state=1;
}
else if(state==1) {
state=0;
mp.pause();
}
break;
case R.id.next: //Next button
Log.v(TAG,"Next button pressed!");
count=(count+1)%2; //Have only two songs
mp.reset();
try {
mp.setDataSource(this, Uri.parse("android.resource://com.example.myfirstapp"+songs[count]));
mp.setOnPreparedListener(this);
mp.prepareAsync();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.start();
break;
}
}
基本上,我这样做是为下一步按钮的每preSS:-reset MP(即MediaPlayer对象)-set新的数据源播放下一首歌曲-start熔点
Basically, I'm doing this for every press of the Next button: -reset mp (i.e. the MediaPlayer object) -set a new data source for playing the next song -start mp
至于用西顿preparedListener
或 prepareAsync
,我读的
相关推荐
最新文章