Я срочно использую exoplayer_2.11.1 для прямой трансляции контента с определенных URL-адресов в элемент пользовательского интерфейса PlayerView. Телефоны Samsung, кажется, работают без проблем, но на устройствах Huawei нет звука.
Вот код активности:
public class WatchActivity extends AppCompatActivity {
SimpleExoPlayer player;
PlayerView playerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_watch);
String MyUrlVid = "http://android.bssapp.com:8000/00/25220415/8638"; //example live stream url
Uri UrlVideo = Uri.parse(MyUrlVid);
player = new SimpleExoPlayer.Builder(this).build();
playerView = findViewById(R.id.player_view);
playerView.setPlayer(player);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this,"TvTest");
MediaSource videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(UrlVideo);
player.prepare(videoSource);
player.setPlayWhenReady(true);
}
Что я пробовал:
public class WatchActivity extends AppCompatActivity {
SimpleExoPlayer player;
PlayerView playerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_watch);
String MyUrlVid = "http://android.bssapp.com:8000/00/25220415/8638";
String MyUrlAud = "https://files/.../a_random_audio_file.mp3"; //*1
Uri UrlVideo = Uri.parse(MyUrlVid);
Uri UrlAudio = Uri.parse(MyUrlAud);
player = new SimpleExoPlayer.Builder(this).build();
playerView = findViewById(R.id.player_view);
playerView.setPlayer(player);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this,"TvTest");//*2
MediaSource videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(UrlVideo);
MediaSource audioSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(UrlAudio);
player.prepare((new MergingMediaSource(videoSource, audioSource)));
player.setPlayWhenReady(true);
}
- Есть ли способ извлечь АУДИО ТОЛЬКО из "MyUrlVid" и использовать его здесь? (Как работает аудио по данной ссылке)
- Добавление этого флага "FLAG_ALLOW_NON_IDR_KEYFRAMES", похоже, решает проблему для некоторых людей, использующих HLS но HLS не работает вообще в моем случае (ни звук, ни видео).
Как примечание, я продолжаю получать эти две ошибки где-то в середине из процессов, но они, кажется, ничего не нарушают:
E/HwExtendedCodec: mime: video/avc matching compontent failed!
E/ACodec: [OMX.hisi.video.decoder.avc] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648