android 提取aac音频,使用Android流式传输AAC音频

本文介绍如何通过网络下载M4A和AAC文件,将其缓存到本地,然后使用MediaPlayer播放。详细步骤包括创建文件、读取输入流、写入文件、设置MediaPlayer源并启动播放。遇到异常会捕获并记录。
摘要由CSDN通过智能技术生成

此解决方法允许您从网络播放M4A文件(以及其他容器(如MP4和3GP)中的AAC文件)。它只需从缓存下载文件并播放。

private File mediaFile;

private void playAudio(String mediaUrl) {

try {

URLConnection cn = new URL(mediaUrl).openConnection();

InputStream is = cn.getInputStream();

// create file to store audio

mediaFile = new File(this.getCacheDir(),"mediafile");

FileOutputStream fos = new FileOutputStream(mediaFile);

byte buf[] = new byte[16 * 1024];

Log.i("FileOutputStream", "Download");

// write to file until complete

do {

int numread = is.read(buf);

if (numread <= 0)

break;

fos.write(buf, 0, numread);

} while (true);

fos.flush();

fos.close();

Log.i("FileOutputStream", "Saved");

MediaPlayer mp = new MediaPlayer();

// create listener to tidy up after playback complete

MediaPlayer.OnCompletionListener listener = new MediaPlayer.OnCompletionListener() {

public void onCompletion(MediaPlayer mp) {

// free up media player

mp.release();

Log.i("MediaPlayer.OnCompletionListener", "MediaPlayer Released");

}

};

mp.setOnCompletionListener(listener);

FileInputStream fis = new FileInputStream(mediaFile);

// set mediaplayer data source to file descriptor of input stream

mp.setDataSource(fis.getFD());

mp.prepare();

Log.i("MediaPlayer", "Start Player");

mp.start();

} catch (Exception e) {

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值