Невозможно воспроизвести mp3-файл в потоковом режиме Android с JAVA Server - PullRequest
0 голосов
/ 18 февраля 2019

аудиофайл на стороне сервера. Аудиоформат:

new AudioFormat(
                  AudioFormat.Encoding.PCM_SIGNED,
                  44100,
                  16,
                  baseFormat.getChannels(),
                  baseFormat.getChannels() * 2,
                  baseFormat.getSampleRate(),
                  false);

Ниже приведен мой java-код сервера, который читает файл mp3 и отправляет его клиенту Android

final int READ_THRESHOLD = 2147483647;
                  int framesReaded = READ_THRESHOLD;
                  Header header;
                  for(; framesReaded-- > 0 && (header = bitstream.readFrame()) != null;) {
                      SampleBuffer sampleBuffer = (SampleBuffer) decoder.decodeFrame(header, bitstream);
                      short[] buffer = sampleBuffer.getBuffer();
                      DataOutputStream oos=new DataOutputStream(socket.getOutputStream());

                      for(short ss:buffer) {
                          oos.writeShort(ss);
                      }
                      bitstream.closeFrame();
                      sentCount++;                    
                      //.SendToAll(_buffer, 0, _buffer.length);
                      //oos.close();
                      if(sentCount >=100) {
                          sentCount=0;
                          System.out.println("Connect Recooneted");
                          socket.close();

                          startConnect();

                      }
                  }

Ниже указан мой код Android

static final int frequency = 44100;
    static final int channelConfiguration = AudioFormat.CHANNEL_OUT_MONO;
    static final int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;

playBufSize=AudioTrack.getMinBufferSize(frequency, channelConfiguration, audioEncoding);
        audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, frequency, channelConfiguration, audioEncoding, playBufSize, AudioTrack.MODE_STREAM);
        audioTrack.setVolume(10);
  int readCount = _streamIn.read(data, 0, data.length);
                            if (readCount > 0) {

                           audioTrack.write(data, 0, data.length);

                        }

но я не могу воспроизвести песню в Android.Может ли кто-нибудь помочь мне.

...