라디오의 라이브 스트리밍으로 재생 기능을 갖춘 라이브 DVR을 개발해야합니다. 이미 일부 응용 프로그램처럼 : V Radio Recorder. 중요한 것은 재생 기능과 라이브 스트리밍이 필요합니다. 사용자가 20 초 동안 라디오를 들으면 10 초에 되감기 할 수 있습니다.재생 후 기능으로 라이브 스트리밍
1
A
답변
0
먼저 실시간 스트림 바이트를 다운로드하고 로컬로 캐시합니다. 그런 다음 해당 캐시에서 라디오를 재생하고 녹음을 위해 해당 파일을 다른 녹음 디렉토리에 저장하십시오. 여기에 코드가 있습니다. 여기 AudioTrack을 사용하지만 미디어 플레이어를 사용하고 미디어 플레이어에 소스를 설정하여 재생을 위해 파일을 캐시 할 수 있습니다.
public class MainActivity extends AppCompatActivity {
private Decoder mDecoder;
private AudioTrack mAudioTrack;
File downloadingMediaFile;
FileOutputStream out;
Button stop, start;
boolean isStop;
Thread DownloadThread;
String url = "http://stream.laut.fm/darksynthradio?type=.mp3/;stream.mp3";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager().beginTransaction()
.replace(R.id.continer, AudioVisualizationFragment.newInstance())
.addToBackStack(null)
.commit();
stop = (Button) findViewById(R.id.btn_stop);
start = (Button) findViewById(R.id.btn_start);
isStop = true;
stop.setClickable(false);
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isStop = true;
start.setClickable(true);
stop.setClickable(false);
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this, "Download Stop", Toast.LENGTH_SHORT).show();
}
});
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
downloadingMediaFile = new File("/storage/sdcard0/", new Date() + ".mp3");
try {
out = new FileOutputStream(downloadingMediaFile, true);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
isStop = false;
stop.setClickable(true);
start.setClickable(false);
Download();
DownloadThread.start();
Toast.makeText(MainActivity.this, "Download Start", Toast.LENGTH_SHORT).show();
}
});
final int sampleRate = 44100;
final int minBufferSize = AudioTrack.getMinBufferSize(sampleRate,
AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_16BIT);
mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate,
AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
minBufferSize,
AudioTrack.MODE_STREAM);
mDecoder = new Decoder();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
InputStream in = new URL(url)
.openConnection()
.getInputStream();
final Bitstream bitstream = new Bitstream(in);
final int READ_THRESHOLD = 2147483647;
int framesReaded = READ_THRESHOLD;
Header header;
for (; framesReaded-- > 0 && (header = bitstream.readFrame()) != null;) {
SampleBuffer sampleBuffer = (SampleBuffer) mDecoder.decodeFrame(header, bitstream);
short[] buffer = sampleBuffer.getBuffer();
mAudioTrack.write(buffer, 0, buffer.length);
bitstream.closeFrame();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
mAudioTrack.play();
}
@Override
protected void onDestroy() {
super.onDestroy();
mAudioTrack.stop();
}
void Download() {
DownloadThread = new Thread(new Runnable() {
@Override
public void run() {
try {
InputStream in = new URL(url)
.openConnection()
.getInputStream();
byte buf[] = new byte[16384];
do {
int numread = 0;
numread = in.read(buf);
if (numread > 0) {
out.write(buf, 0, numread);
}
} while (!isStop);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
0
내 문제를 해결하기 위해 wowza 서버를 찾았습니다.
wowza 서버에 계정을 만드십시오. 서버 파일을 다운로드하십시오. 로컬 시스템에서 서버를 실행하십시오. 라이브 URL을 wowza 서버에 넣고 재생할 시간을 선택하십시오. MX 플레이어를 사용하여 재생 기능을 가진 스트리밍을 재생했습니다. 이를 해결하는 방법을 비트 스트림 디코더, SampleBuffer : 여기
는 이러한 클래스를 설명 할 수 있다면 더 도움이 될 것입니다 도움을 website Link
관련 문제
- 1. AVPlayer로 라이브 URL 스트리밍 재생
- 2. HTTP 라이브 스트리밍 - 번들에서 재생
- 3. 배경 라이브 스트리밍 오디오 재생
- 4. HTTP 라이브 스트리밍 - 링크 재생
- 5. 모바일 자동 라이브 스트리밍 재생
- 6. 플래시 재생 및 HTTP 라이브 스트리밍
- 7. 어떻게 RTMP 라이브 스트리밍 URL을 안드로이드에서 재생
- 8. 라이브 방송중인 카메라의 URL에서 라이브 스트리밍 재생 방법
- 9. 라이브 라이브 스트리밍 live555
- 10. 라이브 스트리밍 자동 파일럿 (루프 비디오 라이브)
- 11. ios에서 라이브 비디오 스트리밍
- 12. 라이브 기능으로 바꾸기
- 13. 라이브 스트리밍
- 14. Http 라이브 스트리밍 iphone
- 15. Android/iPhone으로의 진정한 라이브 스트리밍
- 16. 실버 스트리밍 라이브 스트리밍 4
- 17. 라이브 오디오를 브라우저로 스트리밍
- 18. HTTP 라이브 스트리밍 Mac 앱
- 19. 안드로이드 라이브 스트리밍 - h264 디코딩
- 20. 라이브 스트리밍 (MP4)
- 21. HTML5 h264 라이브 스트리밍 비디오
- 22. 라이브 - 뉴스 - 신속한 재생 3
- 23. Android : 라이브 비디오 스트리밍
- 24. 라이브 스트리밍 비디오
- 25. 라이브 비디오 스트리밍
- 26. 라이브 스트리밍 플렉스
- 27. 라이브 OGG 스트리밍
- 28. 인코딩없이 Http 라이브 스트리밍
- 29. HTTP ffmpeg로 라이브 스트리밍
- 30. iPhone에서 라이브 스트리밍
덕분이다. –
https://drive.google.com/open?id=0B3QOuxsFDJ3sWnJVR1BxM1pKZ3M jar 파일을 다운로드하여 libs 폴더에 넣고 android gradle 파일을 컴파일 파일 ('libs/jl1.0.1.jar')로 컴파일하고이 가져 오기도 가져옵니다. javazoom.jl.decoder.Bitstream; import javazoom.jl.decoder.Decoder; import javazoom.jl.decoder.Header; import javazoom.jl.decoder.SampleBuffer; – asim
도움을 주셔서 감사합니다 다시 @asim하지만 코드를 실행했지만 스트림을 전달하고 되감기 할 수있는 옵션이 없습니다. 당신이 V 라디오 레코더와 같은 정확한 기능을 필요로하는 것에 대해 매우 감사 할 것입니다. –