[英]Android: cant play the mp3 file from the given url
我想了解Android媒體播放器。 我設計了一個媒體播放器,當我在平板電腦中進行測試時,當我選擇播放按鈕時,它將帶有url並播放歌曲;如果我選擇該按鈕將無法播放,或者出現錯誤,則不會崩潰也無法正常工作。
我有一個問題要問,在研究過程中是否需要進行身份驗證,例如示例,所以我看到了android.drm等,因為我將網址鏈接到服務器
有人可以幫我嗎
我已經發布了甚至使用logcat詳細信息的代碼。 logcat會告訴您有關GPU的信息,因此我也在平板電腦上進行了測試,但我仍然無法收聽mp3文件
public class MainActivity extends Activity
{
static final String AUDIO_PATH = "url";
private MediaPlayer mediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void doClick(View view) {
switch(view.getId()) {
case R.id.play:
try {
playAudio(AUDIO_PATH);
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.stop:
if(mediaPlayer != null) {
mediaPlayer.stop();
}
break;
}
}
private void playAudio(String url) throws Exception
{
killMediaPlayer();
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
mediaPlayer.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
killMediaPlayer();
}
private void killMediaPlayer() {
if(mediaPlayer!=null) {
try {
mediaPlayer.release();
}
catch(Exception e) {
e.printStackTrace();
}
}
}}
main.xml文件如下所示
<EditText
android:id="@+id/EditTextSongURL"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.54"
android:ems="10"
android:inputType="textMultiLine" >
<requestFocus />
</EditText>
<ImageButton
android:id="@+id/ButtonTestPlayPause1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/play" />
<SeekBar
android:id="@+id/SeekBarTestPlay"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
在logcat中沒有除Gpu這樣的錯誤
嘗試這個:
MediaPlayer mp=new MediaPlayer();
try {
mp.setDataSource(url);
} 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();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
mp.setLooping(true);
}
MediaPlayer mediaPlayer = new MediaPlayer();
mp.setDataSource(context, Uri.parse("http://www.domian.com/ola.mp3"));
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.prepare();
mp.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// Display error
return false;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.