Tôi muốn phát trực tiếp và phát các url xem trước iTunes như http://a2.mzstatic.com/us/r1000/044/Music/e9/40/ec/mzm.evyxvimp.aac.p.m4a. Tôi đã cố gắng sử dụng Thư viện AAC Decoder Android. Theo đó Tôi có thể phát trực tuyến và phát các url luồng AAC như http://http.yourmuze.com:8000/play/paradise/l.aac. Nhưng nó dnt stream m4a url (Logcat nói java.io.FileNotFoundException: http://a2.mzstatic.com/us/r1000/044/Music/e9/40/ec/mzm.evyxvimp.aac.p.m4a
).Phát trực tuyến và phát luồng .m4a (Url xem trước iTunes) trong android
Làm cách nào để truyền trực tuyến liên kết .m4a?
Mã của tôi:
public class AACPlayerActivity extends Activity implements OnClickListener,PlayerCallback{
private Button btnPlay;
private ProgressBar progress;
private Handler uiHandler;
private MultiPlayer multiPlayer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnPlay = (Button)findViewById(R.id.playButton);
progress = (ProgressBar)findViewById(R.id.progress);
progress.setVisibility(View.INVISIBLE);
btnPlay.setOnClickListener(this);
uiHandler = new Handler();
}
public void playerException(Throwable arg0) {
// TODO Auto-generated method stub
}
public void playerMetadata(String arg0, String arg1) {
// TODO Auto-generated method stub
}
public void playerPCMFeedBuffer(boolean arg0, final int audioBufferSizeMs, final int audioBufferCapacityMs) {
// TODO Auto-generated method stub
uiHandler.post(new Runnable() {
public void run() {
// TODO Auto-generated method stub
progress.setProgress(audioBufferSizeMs * progress.getMax()/audioBufferCapacityMs);
}
});
}
public void playerStarted() {
uiHandler.post(new Runnable() {
public void run() {
// TODO Auto-generated method stub
progress.setProgress(0);
progress.setVisibility(View.VISIBLE);
}
});
}
public void playerStopped(int arg0) {
// TODO Auto-generated method stub
uiHandler.post(new Runnable() {
public void run() {
// TODO Auto-generated method stub
progress.setVisibility(View.INVISIBLE);
}
});
}
public void onClick(View v) {
// TODO Auto-generated method stub
if(btnPlay.getText().equals("Play")){
start();
btnPlay.setText("stop");
}else{
stop();
}
}
private void start() {
stop();
// we cannot do it in playerStarted() - it is too late:
multiPlayer = new MultiPlayer(this,MultiPlayer.DEFAULT_AUDIO_BUFFER_CAPACITY_MS, MultiPlayer.DEFAULT_DECODE_BUFFER_CAPACITY_MS);
multiPlayer.playAsync("http://a2.mzstatic.com/us/r1000/044/Music/e9/40/ec/mzm.evyxvimp.aac.p.m4a");
}
private void stop() {
if (multiPlayer != null) {
multiPlayer.stop();
multiPlayer = null;
}
}
cập nhật
- tôi cố gắng sử dụng ServeStream nó nói url không thể mở được.
- Tôi cố gắng sử dụng Vitamio SDK nó cũng không phát được
itunes preview Urls
.
Bạn có thể chơi itunes preview urls
trong Android?
'MultiPlayer' là gì? Bạn đã thử truyền URL đến phiên bản 'MediaPlayer' mặc định của Android chưa? – Devunwired
Tôi đã thử nhưng trình phát phương tiện mặc định của Android không thể truyền luồng url aac. Vì vậy, tôi đã thử sử dụng thư viện giải mã AAC sử dụng MultiPlayer thay cho MediaPlayer. Nhưng nó cũng không phải là Streaming. –
Tôi là nhà phát triển của ServeStream. Tôi đã thử URL bạn đã cung cấp và nó đã phát mà không gặp sự cố khi sử dụng phiên bản mới nhất (0.4.11), FYI. ServeStream sẽ đáp ứng yêu cầu của bạn. –