我找了半天好的答案,但我的IT技术入门级别,非常感谢您提供任何帮助。
我想实现的是在ffmpeg或vlc中流式传输音频(mp3文件),并通过udp/rtp在Android设备上接收它。
这是我自己能够了解到的:
1)有Android类AudioStream和RTPStream。我不知道如何使用它。例如,我通过ffmpeg创建一个流:
我在Stack上找到了这样的东西:
我想实现的是在ffmpeg或vlc中流式传输音频(mp3文件),并通过udp/rtp在Android设备上接收它。
这是我自己能够了解到的:
1)有Android类AudioStream和RTPStream。我不知道如何使用它。例如,我通过ffmpeg创建一个流:
ffmpeg -re -i mymp3.mp3 -ar 8000 -acodec copy -f rtp rtp://192.168.0.100:5533
,其中192.168.0.100
是我的Android设备的地址。现在我想接收并播放它。我在Stack上找到了这样的东西:
AudioStream audioStream;
AudioGroup audioGroup;
AudioCodec codec = AudioCodec.PCMU;
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
StrictMode.setThreadPolicy(policy);
AudioManager audio = (AudioManager)getSystemService(AUDIO_SERVICE);
audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioGroup = new AudioGroup();
audioGroup.setMode(AudioGroup.MODE_NORMAL);
InetAddress inetAddress;
try {
inetAddress = InetAddress.getByName("163.11.62.208");
audioStream = new AudioStream(inetAddress);
audioStream.setMode(RtpStream.MODE_RECEIVE_ONLY);
audioStream.setCodec(codec);
InetAddress inetAddressRemote = InetAddress.getByName("163.11.169.206");
audioStream.associate(inetAddressRemote, 5004);
audioStream.join(audioGroup);
}
第一个inetAddress 163.11.62.208
是什么?第二个inetAddress 163.11.169.206
又是什么?我不应该只给一个流的地址吗?
2) 我能提交仅为PCMU格式的流吗?我可以流式传输mp3文件吗?
3) 这是否可行?