2011-08-29 26 views
6

Tôi đang cố gắng phát tệp âm thanh khi nhấp vào nút nhưng URL âm thanh của tôi có dạng internet, ví dụ: http://www.example.com/sound.mp3. Làm cách nào tôi có thể phát khi nút được nhấp, sử dụng Trình phát đa phương tiện.Phát tệp âm thanh từ internet khi một nút được nhấp vào

Ví dụ: Đây là cách để chơi tập tin địa phương

 b.setOnClickListener(new View.OnClickListener() { 
     @Override public void onClick(View v) { 
     MediaPlayer mp = MediaPlayer.create(this, R.raw.mmmm); 
     mp.start(); 
     } 
     }); 

Tôi muốn chơi âm thanh này http://www.example.com/sound.mp3 đại diện R.raw.mmmm, mà không cần tải âm thanh này.

+0

Bằng cách không tải xuống, bạn có nghĩa là phát trực tuyến không? Android không thể thực sự phát trực tiếp nhưng theo tôi biết. – mibollma

Trả lời

18

Media Player có tính năng lớn về android.You có thể xử lý tất cả các sự kiện mà occurred.So đây là đoạn code để chơi một tập tin (Hoặc địa phương hoặc Url trực tuyến)

String url = "http://........"; // your URL here 
MediaPlayer mediaPlayer = new MediaPlayer(); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(url); 
mediaPlayer.prepareAsync(); 
//You can show progress dialog here untill it prepared to play 
mediaPlayer.setOnPreparedListener(new OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      //Now dismis progress dialog, Media palyer will start playing 
      mp.start(); 
     } 
    }); 
    mediaPlayer.setOnErrorListener(new OnErrorListener() { 
     @Override 
     public boolean onError(MediaPlayer mp, int what, int extra) { 
      // dissmiss progress bar here. It will come here when MediaPlayer 
      // is not able to play file. You can show error message to user 
      return false; 
     } 
    }); 
+2

Chấp nhận câu trả lời nếu câu trả lời giải quyết được sự cố của bạn. – Sameer

0

Nếu bạn muốn chơi này âm thanh cục bộ, bạn phải tải xuống trước.

Bạn chỉ không thể "phát nội dung nào đó từ internet" khi máy đang phát âm thanh đó là máy cục bộ của bạn. Nó cần phải có một bản sao của MP3 đó.

Sau đó, có thể có nhiều cách để bắt đầu phát trước khi quá trình tải xuống hoàn tất, nhưng sẽ vẫn có tải xuống.

EDIT: AndroidDeveloper, trong trả lời khác của trang đó, cung cấp cho bạn thông tin về cách phát trực tuyến (+1!). Điều này tương ứng với những gì tôi đã nói ở trên, vì vậy có vẻ như có một cách để bắt đầu chơi trước khi quá trình tải xuống thực sự hoàn tất, mặc dù việc tải xuống này sẽ xảy ra ở cuối.

+0

nhưng tôi thấy nó phát âm thanh từ internet – boyyes90

Các vấn đề liên quan