मैं एंड्रॉइड सीख रहा हूं और मैंने एक गतिविधि बनाई है जिसमें दो बटन हैं: एक टॉगल बटन (प्ले/पॉज़) और एक बटन (अगला)। मेरे पास दो गाने हैं जो अगली दबाने पर साइकिल चलाना चाहते हैं। मैं एक सरणीमीडियाप्लेयर: क्लाइंट पक्ष पर फ़ाइल नहीं खोल सका; त्रुटि (-38,0) और अधिक
int [] songs={R.raw.song1,R.raw.song2};
मैं अपने गतिविधि में onClick overrode है। पहला गीत ठीक खेलता है;
क्लाइंट की तरफ फ़ाइल नहीं खोली, सर्वर साइड
ई/MediaPlayer (3107) की कोशिश कर रहा सका:: राज्य में बुलाया शुरू 4
ई/लेकिन अगला दबाने के बाद, मैं निम्नलिखित त्रुटियाँ प्राप्त MediaPlayer (3107): त्रुटि (-38, 0)
ई/MediaPlayer (3107): त्रुटि (-38,0)
ई/MediaPlayer (3107): त्रुटि (1, -+२१४७४८३६४८)
ई/MediaPlayer (3107): त्रुटि (1, -2147483648)
OnCreate (बंडल ...) में,
if(mp!=null) mp.release();
mp=MediaPlayer.create(this, songs[count]);
यहाँ मेरी onClick (देखें v) विधि है:
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;
}
}
असल में, मैं अगला बटन के प्रत्येक प्रेस के लिए यह कर रहा हूं: -reset mp (यानी MediaPlayer वस्तु) setOnPreparedListener
या prepareAsync
का उपयोग कर के रूप में अगले गीत -Start mp
खेलने के लिए एक नया डेटा स्रोत सेट, मैं this SO question पढ़ें।
मैं गलत कहां जा रहा हूं?
[एंड्रॉइड मीडियाप्लेयर समस्याएं: "त्रुटि (-38, 0)" और "राज्य 1 में कॉल करना बंद करें" के संभावित डुप्लिकेट] (http://stackoverflow.com/questions/11913108/android-mediaplayer-problems-error- 38-0-और-स्टॉप-इन-स्टेट-1) – rds