How to display hdmi input on my surface
habi-kvana opened this issue · 0 comments
From the below code iam able to display HDMI Input on mTvView…But my requirement is to display HDMI Input on a surfaceView so that i can do some customizations on it.
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback {
private TvInputManager tvInputManager;
private TvView mTvView;
private SurfaceHolder surfaceHolder;
private SurfaceView surfaceView;
private static final Uri CHANNEL_URI = Uri.parse("content://android.media.tv/passthrough/com.droidlogic.tvinput%2F.services.Hdmi2InputService%2FHW6");
private static final String INPUT_ID = "com.droidlogic.tvinput/.services.Hdmi2InputService/HW6";
private static final String TAG = "MainActivity";
@OverRide
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTvView = findViewById(R.id.tv_view);
surfaceView = findViewById(R.id.surfaceView);
mTvView.tune(INPUT_ID, CHANNEL_URI);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
}
@OverRide
public void surfaceCreated(SurfaceHolder surfaceHolder) {
Log.d( TAG, "surfaceCreated");
TvInputManager mTvInputManager = (TvInputManager) this.getSystemService(Context.TV_INPUT_SERVICE);
List inputList = mTvInputManager.getTvInputList();
for (TvInputInfo input : inputList) {
if(input.getId().contains(".Hdmi2InputService/HW6")) {
}
}
}
@OverRide
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
Log.d( TAG, "surfaceChanged");
}
@OverRide
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
Log.d( TAG, "surfaceDestroyed");
}
}