마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MP3 재생 좀 해볼라 하는데 에러뜨네요~! setDataSource failed

0 추천

안녕하세요.

오늘 막 안드로이드 세계에 입문 했어요~!

오디오 재생을 하려고 아래와 같이 책보고 짰는데요, 데이터 소스 에러가 뜨네요.

웹브라우저에서 경로 입력해서 때리면 음악 잘 나오거든요.

무엇이 문제일까요?

참고로 MP3가 문제일수도 있다고 해서 AMR 로도 해봤지만 같아요~! 안드로이드 스튜디오고요.

05-19 21:54:33.031    2284-2284/cjun.net.alarm E/MediaPlayer﹕ Unable to create media player
05-19 21:54:33.031    2284-2284/cjun.net.alarm W/System.err﹕ java.io.IOException: setDataSource failed.: status=0x80000000
05-19 21:54:33.031    2284-2284/cjun.net.alarm W/System.err﹕ at android.media.MediaPlayer.nativeSetDataSource(Native Method)

----

 

package cjun.net.alarm;
 
import java.util.Calendar;
import android.app.PendingIntent;
import android.app.Activity;
import android.app.AlarmManager;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
 
public class MainActivity extends Activity implements View.OnClickListener {
    Button button_setAlarm;
    static final String AUDIO_URL = "http://ddwat.com/alarm/alarm.mp3";
    private MediaPlayer mediaPlayer;
    private int playbackPosition = 0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        button_setAlarm = (Button) findViewById(R.id.button_setAlarm);
        button_setAlarm.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        // 알람 매니저에 등록할 인텐트를 만듬
        Intent intent = new Intent(this, AlarmReceiver.class);
        PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
 
        // 알람을 받을 시간을 5초 뒤로 설정
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.SECOND, 5);
 
        // 알람 매니저에 알람을 등록
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
 
        // MP3 재생 TEST : 현재 재생 불가능
        try {
            playAudio(AUDIO_URL);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    private void playAudio(String url) throws Exception {
        killMediaPlayer();
 
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setDataSource(url);
        mediaPlayer.prepare();
        mediaPlayer.start();
    }
 
    protected void onDestroy() {
        super.onDestroy();
        killMediaPlayer();
    }
 
    private void killMediaPlayer() {
        if (mediaPlayer != null) {
            try {
                mediaPlayer.release();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
}
 
익명사용자 님이 2015년 5월 19일 질문

1개의 답변

0 추천
http://ensider.tistory.com/entry/Android-Programming-%EA%B0%84%EB%8B%A8%ED%95%9C-Music-Player-%EB%A7%8C%EB%93%A4%EA%B8%B0-1

 

위의 링크에 소스까지 있네요 참고해보세요

 

 

----------------------------------------

doridori2013@nate.com
익명사용자 님이 2015년 5월 20일 답변
...