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

MediaPlayer를 이용하여 스트리밍 음악서비스 앱을 만들어보고 싶어요

0 추천

제목 그대로인데요..

우선 컴퓨터 한대에다 Darwin Streaming Server를 구축하고
 String music_uri = "rtsp://내ip/파일이름.mp3";
 Uri uri = Uri.parse(music_uri);
mPlayer.setDataSource(getApplicationContext(), uri);
이런식으로 안드로이드 소스를 짜는 식으로 하면 되는건가요??
그러면 prepare 하다 이런 에러가 뜹니다.. Prepare failed.: status=0x1
어디가 문젠지... 다윈서버를 어떤식으로 사용해야되는지도 잘 모르겠고..(구축은 잘 되었는데 지정된 디렉토리에 음악 파일을 넣으려니까 음악파일이 안들어갑니다... 헤더부분을 어떻게 해야된다는데..)
자그마한 조언이나 키워드만 던져 주셔도 정말 행복할것 같습니다
감사합니다.
 
package com.example.mstest;
 
import java.io.IOException;
 
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 MediaPlayer mPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 findViewById(R.id.play).setOnClickListener(new Button.OnClickListener() {
             public void onClick(View v) {
                  mPlayer = new MediaPlayer();
                  String music_uri = "rtsp://192.168.0.2/sample.mp3";
                  Uri uri = Uri.parse(music_uri);
         //          mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                  try {
                      mPlayer.setDataSource(getApplicationContext(), uri);
                  } catch (IllegalArgumentException e) {
                      Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
                  } catch (SecurityException e) {
                      Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
                  } catch (IllegalStateException e) {
                      Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
                  try {
                      mPlayer.prepare();
                  } catch (IllegalStateException e) {
                      Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
                  } catch (IOException e) {
                      Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
                  }
                  mPlayer.start();
             }
         });
 
}
public void onDestroy() {
        super.onDestroy();
        if (mPlayer != null) {
          mPlayer.release();
          mPlayer = null;
        }
 }
}
 

 

쌔너클러스 (210 포인트) 님이 2014년 2월 17일 질문
소스엔 문제가 없고 uri에 문제가 있는거 같네요... 되는 링크로 돌리니까 노래가 재생 됩니다.. 그렇담 서버에 문제가 있다는건데.....ㅠㅠㅠ

1개의 답변

0 추천
 
채택된 답변

우선 browser에서 rtsp 주소를 입력 해 보세요. 만약 재생이 안된다면, 서버 설정 문제이고, 재생이 되는데, 단말에서 안된다면, 코드 문제라고 밖에 할 수 없을 듯 한데... 코드 상은 큰 문제가 없을 듯 하니. 아무래도 서버 설정이 문제일 듯 하네요..

꼭 rtsp로 돌려야 하는게 아니라면 그냥 tomcat 서버에 mp3 파일 올려 두고, http:// 형식으로 tomcat 서버에 올라간 mp3 파일 주소만 setDataSouce시 설정 해 주시면 될 듯 합니다.(이 때도 browser에서 재생되는지 확인 해보세요.. 안되면, 주소가 잘 못 된 겁니다.)

 

사악미소 (65,330 포인트) 님이 2014년 2월 17일 답변
쌔너클러스님이 2014년 2월 18일 채택됨
저도 서버에 문제가 있을꺼라 생각되네요 ..흠 제가 공유기를 사용하고 있는데... 그것이 문제가 아닐런지... 포트파운딩 해라는 얘기도 들었는데... 개념이 잘 없어서 .. 간략히 좀 설명 해주시면 안될까요?
...