简体   繁体   中英

java.lang.ClassCastException: com.twilio.video.VideoTextureView cannot be cast to android.widget.VideoView

Does anyone have any information on how to get a broadcast link from the Twilio API?

I want to stream video with VideoTextureView . I tried to do it with the code below, but I couldn't find a broadcast link with the Twilio API.

I'm receiving the following error:

Caused by: java.lang.ClassCastException: com.twilio.video.VideoTextureView cannot be cast to android.widget.VideoView

My code:

public class MainActivity extends AppCompatActivity {
    private ImageButton button, button1, button2;
    private GridLayout gridLayout;
    private ImageView circle, dislike, like;
    private VideoView videoView;
    private String videoPath;
    private VideoTextureView videoTextureView;
    private Uri uri;


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

        button = findViewById(R.id.circle);
        button1 = findViewById(R.id.dislike);
        button2 = findViewById(R.id.like);
       
        circle = findViewById(R.id.imageView);
        dislike = findViewById(R.id.imageView2);
        like = findViewById(R.id.imageView3);

        circle.setVisibility(View.INVISIBLE);
        dislike.setVisibility(View.INVISIBLE);
        like.setVisibility(View.INVISIBLE);

        videoView = findViewById(R.id.video_view_top_right);
        Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.video);
        videoView.setVideoURI(uri);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "Circle", 
                    Toast.LENGTH_LONG).show();
            }
        });
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "Dislike", 
                    Toast.LENGTH_LONG).show();
            }
        });
        button2.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view) {
               Toast.makeText(MainActivity.this, "Like", 
                   Toast.LENGTH_LONG).show();
               findViewById(R.id.imageView);
            }
        });
    }
}

Layout File:

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.twilio.video.VideoTextureView
        android:id="@+id/video_view_top_right"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <pl.droidsonroids.gif.GifImageView
        android:id="@+id/gift"
        android:layout_width="106dp"
        android:layout_height="106dp"
        android:layout_gravity="center"
        android:layout_marginTop="492dp"
        android:layout_marginEnd="168dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="70dp"
        android:layout_height="58dp"
        android:layout_marginStart="61dp"
        android:layout_marginTop="244dp"
        android:layout_marginEnd="40dp"
        app:layout_constraintEnd_toStartOf="@+id/imageView2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/launch1" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="70dp"
        android:layout_height="58dp"
        android:layout_marginTop="244dp"
        android:layout_marginEnd="40dp"
        app:layout_constraintEnd_toStartOf="@+id/imageView3"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/launch2" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="70dp"
        android:layout_height="58dp"
        android:layout_marginEnd="60dp"
        android:layout_marginBottom="428dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:srcCompat="@mipmap/launch3" />

    <ImageButton
        android:id="@+id/circle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="37dp"
        android:layout_marginBottom="4dp"
        android:background="@mipmap/launch1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/dislike"
        app:layout_constraintHorizontal_bias="0.574"
        app:layout_constraintStart_toStartOf="parent" />

    <ImageButton
        android:id="@+id/dislike"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/launch2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.499"
        app:layout_constraintStart_toStartOf="parent"></ImageButton>

    <ImageButton
        android:id="@+id/like"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="60dp"
        android:layout_marginBottom="4dp"
        android:background="@mipmap/launch3"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.447"
        app:layout_constraintStart_toEndOf="@+id/dislike"></ImageButton>
    
</androidx.constraintlayout.widget.ConstraintLayout>

The error received:

2020-08-10 22:28:03.331 13296-13296/com.bariskarapelit.stajprojesi_1 E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.bariskarapelit.stajprojesi_1, PID: 13296
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bariskarapelit.stajprojesi_1/com.bariskarapelit.stajprojesi_1.MainActivity}: java.lang.ClassCastException: com.twilio.video.VideoTextureView cannot be cast to android.widget.VideoView
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3126)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3269)
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
            at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
            at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1960)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            at android.os.Looper.loop(Looper.java:214)
            at android.app.ActivityThread.main(ActivityThread.java:7094)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
         Caused by: java.lang.ClassCastException: com.twilio.video.VideoTextureView cannot be cast to android.widget.VideoView
            at com.bariskarapelit.stajprojesi_1.MainActivity.onCreate(MainActivity.java:49)
            at android.app.Activity.performCreate(Activity.java:7340)
            at android.app.Activity.performCreate(Activity.java:7331)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1275)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3106)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3269) 
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
            at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
            at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1960) 
            at android.os.Handler.dispatchMessage(Handler.java:106) 
            at android.os.Looper.loop(Looper.java:214) 
            at android.app.ActivityThread.main(ActivityThread.java:7094) 
            at java.lang.reflect.Method.invoke(Native Method)

Stream video in android VideoView and use screencast API of Twilio to broadcast your video. Twilio's VideoTextureView is for showing the camera view or screen. Follow the link below,

https://www.twilio.com/docs/video/android-screen-capture-v5

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM