I tried several implementations but completely unable to get this to work, it's always just a black screen. It seems the library is pretty old and don't see it used a lot on forums, especially recently... does it just not work anymore or something?
Here is my activity:
import android.os.Bundle;
import android.util.Log;
import com.creativelabs.iptvplayer.R;
import .videolan.libvlc.LibVLC;
import .videolan.libvlc.Media;
import .videolan.libvlc.MediaPlayer;
import .videolan.libvlc.util.VLCVideoLayout;
import java.util.ArrayList;
public class TestActivity extends FragmentActivity {
private static final boolean USE_TEXTURE_VIEW = false;
private static final boolean ENABLE_SUBTITLES = true;
private static final String IPTV_URL = ".mp4";
private VLCVideoLayout mVideoLayout = null;
private LibVLC mLibVLC = null;
private MediaPlayer mMediaPlayer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_act);
final ArrayList<String> options = new ArrayList<>();
options.add("--no-drop-late-frames");
options.add("--no-skip-frames");
options.add("--avcodec-hw=any"); // Enable hardware acceleration
options.add("--network-caching=1000"); // Improve streaming performance
options.add("-vvv"); // Enable verbose logging
mLibVLC = new LibVLC(this, options);
mMediaPlayer = new MediaPlayer(mLibVLC);
mVideoLayout = findViewById(R.id.video_layout);
}
@Override
protected void onDestroy() {
super.onDestroy();
mMediaPlayer.release();
mLibVLC.release();
}
@Override
protected void onStart() {
super.onStart();
mMediaPlayer.attachViews(mVideoLayout, null, ENABLE_SUBTITLES, USE_TEXTURE_VIEW);
final Media media = new Media(mLibVLC, IPTV_URL);
media.setHWDecoderEnabled(true, false); // Enable hardware decoding (optional)
media.addOption(":network-caching=3000");
mMediaPlayer.setMedia(media);
media.release();
mMediaPlayer.play();
}
@Override
protected void onStop() {
super.onStop();
mMediaPlayer.stop();
mMediaPlayer.detachViews();
}
}
What am I missing please?
I tried several implementations but completely unable to get this to work, it's always just a black screen. It seems the library is pretty old and don't see it used a lot on forums, especially recently... does it just not work anymore or something?
Here is my activity:
import android.os.Bundle;
import android.util.Log;
import com.creativelabs.iptvplayer.R;
import .videolan.libvlc.LibVLC;
import .videolan.libvlc.Media;
import .videolan.libvlc.MediaPlayer;
import .videolan.libvlc.util.VLCVideoLayout;
import java.util.ArrayList;
public class TestActivity extends FragmentActivity {
private static final boolean USE_TEXTURE_VIEW = false;
private static final boolean ENABLE_SUBTITLES = true;
private static final String IPTV_URL = "https://www.learningcontainer/wp-content/uploads/2020/05/sample-mp4-file.mp4";
private VLCVideoLayout mVideoLayout = null;
private LibVLC mLibVLC = null;
private MediaPlayer mMediaPlayer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_act);
final ArrayList<String> options = new ArrayList<>();
options.add("--no-drop-late-frames");
options.add("--no-skip-frames");
options.add("--avcodec-hw=any"); // Enable hardware acceleration
options.add("--network-caching=1000"); // Improve streaming performance
options.add("-vvv"); // Enable verbose logging
mLibVLC = new LibVLC(this, options);
mMediaPlayer = new MediaPlayer(mLibVLC);
mVideoLayout = findViewById(R.id.video_layout);
}
@Override
protected void onDestroy() {
super.onDestroy();
mMediaPlayer.release();
mLibVLC.release();
}
@Override
protected void onStart() {
super.onStart();
mMediaPlayer.attachViews(mVideoLayout, null, ENABLE_SUBTITLES, USE_TEXTURE_VIEW);
final Media media = new Media(mLibVLC, IPTV_URL);
media.setHWDecoderEnabled(true, false); // Enable hardware decoding (optional)
media.addOption(":network-caching=3000");
mMediaPlayer.setMedia(media);
media.release();
mMediaPlayer.play();
}
@Override
protected void onStop() {
super.onStop();
mMediaPlayer.stop();
mMediaPlayer.detachViews();
}
}
What am I missing please?
Share Improve this question asked Feb 17 at 21:34 zuokuokzuokuok 4501 gold badge7 silver badges17 bronze badges 1- First thing you should do is check the logs, and share them – mfkl Commented Feb 18 at 4:44
2 Answers
Reset to default 0Here's your code with some suggestions and insights:
import android.os.Bundle;
import android.util.Log;
import androidx.fragment.app.FragmentActivity;
import com.creativelabs.iptvplayer.R;
import .videolan.libvlc.LibVLC;
import .videolan.libvlc.Media;
import .videolan.libvlc.MediaPlayer;
import .videolan.libvlc.util.VLCVideoLayout;
import java.util.ArrayList;
public class TestActivity extends FragmentActivity {
private static final boolean USE_TEXTURE_VIEW = false;
private static final boolean ENABLE_SUBTITLES = true;
private static final String IPTV_URL = "https://www.learningcontainer/wp-content/uploads/2020/05/sample-mp4-file.mp4";
private VLCVideoLayout mVideoLayout = null;
private LibVLC mLibVLC = null;
private MediaPlayer mMediaPlayer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_act);
final ArrayList<String> options = new ArrayList<>();
options.add("--no-drop-late-frames");
options.add("--no-skip-frames");
options.add("--avcodec-hw=any"); // Enable hardware acceleration
options.add("--network-caching=1000"); // Improve streaming performance
options.add("-vvv"); // Enable verbose logging
mLibVLC = new LibVLC(this, options);
mMediaPlayer = new MediaPlayer(mLibVLC);
mVideoLayout = findViewById(R.id.video_layout);
}
@Override
protected void onDestroy() {
super.onDestroy();
mMediaPlayer.release();
mLibVLC.release();
}
@Override
protected void onStart() {
super.onStart();
mMediaPlayer.attachViews(mVideoLayout, null, ENABLE_SUBTITLES, USE_TEXTURE_VIEW);
final Media media = new Media(mLibVLC, IPTV_URL);
media.setHWDecoderEnabled(true, false); // Enable hardware decoding (optional)
media.addOption(":network-caching=3000");
mMediaPlayer.setMedia(media);
media.release();
mMediaPlayer.play();
}
@Override
protected void onStop() {
super.onStop();
mMediaPlayer.stop();
mMediaPlayer.detachViews();
}
}
I made some edits to your code which you have the correct VLC dependencies in your build.gradle
file.
I found that VLC was treating my URL as a file, I just had to do this instead:
final Media media = new Media(mLibVLC, Uri.parse(IPTV_URL));