@OnlyFirster

Проигрывание потока аудио идет спустя несколько секунд, почему?

Добрый вечер.

Накидал код по проигрыванию аудиопотока (а именно радио), запускаю на эмуляторе, нажимаю кнопку старт и воспроизведение идет сразу. На физическом же устройстве, спустя примерно 30 секунд, что самое интересное в логах увидел как раз строкb

03-17 23:24:03.809 18672-18684/com.example.radioplayer V/MediaHTTPConnection: mTotalSize is -1
03-17 23:24:03.819 18672-18682/com.example.radioplayer D/MediaHTTPConnection: setReadTimeOut = 30000ms

Вот код:

package com.example.radioplayer;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    Button button_stop;
    Button button_play;
    public String STREAM_URL = "http://icecast.piktv.cdnvideo.ru/vanya?47";
    private MediaPlayer mPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button_stop=(Button) findViewById(R.id.stop);
        button_play=(Button) findViewById(R.id.start);

        button_stop.setEnabled(false);

        mPlayer=new MediaPlayer();
        mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

        button_play.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                mPlayer.reset();
                try {
                    mPlayer.setDataSource(STREAM_URL);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                mPlayer.prepareAsync();
                mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        mp.start();
                    }
                });
                button_play.setEnabled(false);
                button_stop.setEnabled(true);
            }

        });

        button_stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mPlayer.stop();
                button_stop.setEnabled(false);
                button_play.setEnabled(true);
            }

        });
    }
}


Гуглил по поводу строк в логах - ничего толкового не нашел, класса такого нет
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 1
@IceJOKER
Web/Android developer
Физическое устройство Samsung Galaxys* ? Android 4.4 или больше?
Это проблема девайса, я решил данную проблему подключив другую библиотеку - Vitamio(подключайте только 5ую версию, но никак не ниже, иначе в консоли появится предупреждение о том, что вам нужно перейти на 5ую версию иначе заблокируют приложение, т.к. в версии ниже есть уязвимость).
Как подключить библиотеку и как с ним работать можно посмотреть на оф сайте, на гитхабе и на stackoverflow....в общем полно информации
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы