En el quinto y último artículo de esta serie sobre cómo conectar vuestra aplicación con otros usuarios para compartir algún elemento, os contaré cómo compartir elementos multimedia haciendo uso de ShareMediaTask.
Escenario
Supongamos que tenemos una aplicación de Windows Phone desde la que queremos compartir un contenido multimedia.
Solución
Windows Phone dispone de la clase ShareMediaTask que se encuentra dentro del espacio de nombres Microsoft.Phone.Tasks y que nos va a permitir realizar el la tarea de compartir un elemento multimedia de forma simple y rápida por medio de las aplicaciones que tengamos instaladas en el terminal y que permitan compartir.
Como en todos los ejemplos, he puesto un botón al que hay que asignar el evento Click o Tap (Para lo que necesitamos hacer da lo mismo el que usemos).
Este ejemplo será un poco diferente al que hemos visto en los demás artículos de la serie y veremos por qué a continuación del código.
1: private void btnShare_Click(object sender, RoutedEventArgs e)
2: {
3: CameraCaptureTask cameraTask = new CameraCaptureTask();
4: cameraTask.Completed += cameraTask_Completed;
5: cameraTask.Show();
6: }
7:
8: void cameraTask_Completed(object sender, PhotoResult e)
9: {
10: if (e.TaskResult == TaskResult.OK)
11: {
12: ShowShareMediaTask(e.OriginalFileName);
13: }
14: }
15: void ShowShareMediaTask(string path)
16: {
17: ShareMediaTask mediaTask = new ShareMediaTask();
18: mediaTask.FilePath = path;
19: mediaTask.Show();
20: }
En primer lugar, en el evento Click del botón, lo que haremos será lanzar la aplicación de la cámara del terminal haciendo uso de la clase CameraCaptureTask que a la que asociaremos un método a su evento “Completed” y que lanzaremos con el método “Show”. Seguidamente se declara el método cameraTask_Completed que es el que hemos asociado al evento anteriormente citado y que, en caso de aceptar la captura realizada por la cámara, llamará al método ShowShareMediaTask que será el encargado, mediante el uso de la clase ShareMediaTask, de lanzar la aplicación del sistema que nos permitirá seleccionar la aplicación desde la que queremos compartir el elemento multimedia tomado.
NOTA: Lo ideal sería que permitiéramos que el usuario escogiera un elemento que tengamos almacenado en el terminal, capturarlo con la cámara, capturar sonido, etc. tal y como hacen otras aplicaciones.
Si probamos la aplicación, veremos que al presionar el botón se abrirá la aplicación de la cámara del terminal, al obtener una foto se nos pedirá confirmación y, si aceptamos, aparecerá un listado con las aplicaciones que tengamos instaladas y desde las que podamos compartir la foto.
Ahora, como ejemplo, compartiré la imagen desde la aplicación 6tag que es un buen cliente de Instagram para Windows Phone. Esta acción nos solicitará recortar la imagen y tras esta acción nos permitirá establecer un mensaje, seleccionar dónde lo compartiremos a parte de Instagram y establecer la ubicación actual. Una vez completado todo lo que deseemos establecer, podremos compartir la imagen en Instagram (Imagen)
Podéis descargaros el proyecto de ejemplo (ShareMedia) desde aquí junto con el resto de ejemplos.