Ejemplo: Permitir que los usuarios cambien el seguimiento de rótulo

Este es un ejemplo de cómo crear un botón que permita al usuario seleccionar una pista de subtítulos.

  1. Cree un botón sencillo para cambiar la pista de subtítulos.

       <Button 
      android:id="@+id/selectCC" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="10dp" 
      android:onClick="selectClosedCaptioningClick" 
      android:text="CC" /> 
    
  2. Convierta la lista de pistas de subtítulos cerrados disponibles en una matriz de cadenas. Las pistas de subtítulos cerrados que tienen actividad (es decir, los canales para los que TVSDK ha descubierto datos) se marcan según corresponda:

    /** 
    * Converts the closed captions tracks to a string array. 
    * 
    * @return array of CC tracks 
    */ 
    private String[] getCCsAsArray() { 
        List<String> closedCaptionsTracksAsStrings = new ArrayList<String>(); 
        MediaPlayerItem currentItem = mediaPlayer.getCurrentItem(); 
        if (currentItem != null) { 
            List<ClosedCaptionsTrack> closedCaptionsTracks = 
              currentItem.getClosedCaptionsTracks(); 
            Iterator<ClosedCaptionsTrack> iterator = closedCaptionsTracks.iterator(); 
            while (iterator.hasNext()) { 
                ClosedCaptionsTrack closedCaptionsTrack = iterator.next(); 
                String isActive = closedCaptionsTrack.isActive() ? " (" + getString(R.string.active)+ ")" : ""; 
                closedCaptionsTracksAsStrings.add(closedCaptionsTrack.getName() + isActive); 
            } 
        } 
        return closedCaptionsTracksAsStrings.toArray(new 
        String[closedCaptionsTracksAsStrings.size()]); 
    } 
    
  3. Cuando el usuario haga clic en el botón , muestre un cuadro de diálogo que enumere todas las pistas de CC predeterminadas.

       public void selectClosedCaptioningClick(View view) { 
        Log.i(LOG_TAG + "#selectClosedCaptions", "Displaying closed captions chooser dialog."); 
        final String items[] = getCCsAsArray(); 
        final AlertDialog.Builder ab = new AlertDialog.Builder(this); 
        ab.setTitle(R.string.PlayerControlCCDialogTitle); 
        ab.setSingleChoiceItems(items, selectedClosedCaptionsIndex, new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int whichButton) { 
                // Select the new closed captioning track. 
                MediaPlayerItem currentItem = mediaPlayer.getCurrentItem(); 
                ClosedCaptionsTrack desiredClosedCaptionsTrack = currentItem.getClosedCaptionsTracks().get(whichButton); 
                boolean result = currentItem.selectClosedCaptionsTrack(desiredClosedCaptionsTrack); 
                if (result) { 
                    selectedClosedCaptionsIndex = whichButton; 
                } 
                // Dismiss dialog. 
                dialog.cancel(); 
            } 
        }).setNegativeButton(R.string.PlayerControlCCDialogCancel, new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int whichButton) { 
            // Just cancel the dialog. 
            } 
        }); 
        ab.show(); 
    } 
    

En esta página