Permitir que los usuarios cambien el seguimiento de rótulo

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

  1. Cree un botón 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 subtítulos opcionales 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