Я пытаюсь реализовать свою собственную версию потоковой передачи. Я посылаю массивы байтов через websocket. Как только я получу первое сообщение, я напишу его во временное и с помощью файла android MediaPlayer
, чтобы воспроизвести файл. Для первого сообщения все работает отлично, я превращаю массив байтов в mp3 и аудио. Однако я не уверен, как писать в файл каждый раз, когда приходит сообщение.Выполнение пользовательской потоковой передачи
несколько примеров кода
Everytime сообщение приходит через этот код получает бежать.
try {
if (fos == null) {
test = File.createTempFile("TCL", "mp3", getCacheDir());
fos = new FileOutputStream(test);
fos.write(bytearray);
mediaPlayer = new MediaPlayer();
MyFile = new FileInputStream(test);
mediaPlayer.setDataSource(MyFile.getFD());
mediaPlayer.prepare();
if(!mediaPlayer.isPlaying()){
mediaPlayer.start();
}
}else{
fos.write(bytearray);
}
} catch (IOException ex) {
ex.printStackTrace();
}
Я думал, что могу просто писать входящий байт [] в файл, но это, похоже, не работает. Любой совет будет принят во внимание.
Я даю это попробовать, я уже пробовал на реализацию, и это не сработало для меня, оно сыграло первый байт [], и я услышал звук, затем он остановился, любые ссылки на примеры, которые я мог бы взять посмотри на? – user3298823
Я не могу рекомендовать конкретный пример, поскольку весь код, который я написал для создания потоковой передачи AudioTrack, является закрытым исходным кодом. Но вам нужно поместить AudioTrack в режим потока, и вам нужно продолжать писать. Я уверен, что здесь есть достаточно ключевых слов для поиска некоторых образцов. :-) –
Спасибо, у меня он работает, он читает все байты [], но возвращается только как статичный. Я это выясню, спасибо! – user3298823