Upload
informes-astrologicos
View
5
Download
1
Embed Size (px)
Citation preview
API Audio
En este capítulo, usted aprenderá cómo reproducir y grabar sonidos. Al igual que con las imágenes, verá que puede reproducir archivos de sonido locales y remotos, y tener un control programático sobre esa reproducción. Las API de audio son parte del módulo principal Ti.Media, que contiene todas las APIs para la funcionalidad relacionada con multimedia . Contiene los siguientes espacios de nombres (namespaces): Ti.Media.Sound -‐ utilizado para reproducir sonidos básicos Ti.Media.AudioPlayer -‐ utilizado para streaming de audio para el control de dispositivos y de bajo nivel de la reproducción de audio Ti.Media.AudioRecorder -‐ se utiliza para la grabación de audio desde el micrófono del dispositivo Reproducción de sonidos básicos Usted puede utilizar el objeto Ti.Media.Sound añadir beeps y sonidos de feedback para el usuario. También puede usarlo para sonidos ambientales (la reproducción en segundo plano mientras la aplicación está activa). Tenga en cuenta, sin embargo que, con el objeto de sonido, todo el archivo de sonido se carga en la memoria antes de reproducirse. Esto aumenta el uso de memoria en su aplicación. También crea un retraso antes de que el sonido se puede jugar por primera vez (mientras el archivo está siendo leído en la memoria). Puede establecer sound.preload = true para precargar el sonido, pero todavía hay demora para que el archivo lea en la memoria. El objeto Sound incluye algunos métodos útiles, como play (), pause () y stop () . La propiedad url acepta una ruta de archivo local o una URL a un archivo de sonido remoto. (El archivo de sonido se debe descargar antes de que se puede reproducir, no será transmitido). Usted puede controlar el volumen, ya sea con el método setVolume () o estableciendo la propiedad del volumen. Consulte la documentación de la API para la información completa. // create the sound/media object var sound = Titanium.Media.createSound({ url: 'your_sound_file.mp3', preload: true }); var button = Ti.UI.createButton({ title: 'Click to play sound', width:'200', height:'40', top:20 }); button.addEventListener('click', function() { sound.play(); });
Cámara y Galería de fotos API
Aprenderemos cómo explorar la cámara y la galería de fotos y sus APIs. Veremos cómo capturar una imagen de la cámara, utilizarla en una aplicación, y guardarla en la galería o el sistema de archivos. También explora las API de galería estrechamente relacionada, que permiten a sus usuarios buscar imágenes de sus álbumes de fotos para su uso dentro de la aplicación.
Las API que se utilizan para acceder a la cámara y galería de fotos son muy similares. Ambos utilizan la misma firma de función, aunque los nombres de los métodos reales varían. Vamos a empezar con un vistazo a la API de la cámara y luego ver cómo se aplican las mismas técnicas para la galería. Cámara Usted puede tener acceso tanto a la cámara trasera y la cámara frontal en los dispositivos que las poseen. Puede capturar imágenes fijas y vídeo desde la cámara. Por lo tanto, usted puede utilizar las imágenes resultantes en su aplicación, guardarlos en el sistema de archivos, cargarlos o guardarlos en la galería. Se abre la cámara mediante una llamada al método showCamera () Al hacerlo, usted define tres funciones de devolución de llamada que se llaman segñunel éxito, cancelación, y los eventos de error, de la solicitud como se muestra aquí: // This example is only able to capture video on the iOS platform. // To capture video on the Android platform, see the Android Capture Video Example below. Titanium.Media.showCamera({ success:function(event) { // called when media returned from the camera Ti.API.debug('Our type was: '+event.mediaType); if(event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) { var imageView = Ti.UI.createImageView({ width:win.width, height:win.height, image:event.media }); win.add(imageView); } else { alert("got the wrong type back ="+event.mediaType); } }, cancel:function() { // called when user cancels taking a picture }, error:function(error) {
// called when there's an error var a = Titanium.UI.createAlertDialog({title:'Camera'}); if (error.code == Titanium.Media.NO_CAMERA) { a.setMessage('Please run this test on device'); } else { a.setMessage('Unexpected error: ' + error.code); } a.show(); }, saveToPhotoGallery:true, // allowEditing and mediaTypes are iOS-only settings allowEditing:true, mediaTypes:[Ti.Media.MEDIA_TYPE_VIDEO,Ti.Media.MEDIA_TYPE_PHOTO] }); La propiedad saveToPhotoGallery controla si la foto o vídeo se guarda automáticamente en la galería de fotos del dispositivo. Usando Ti.Filesystem podría guardar en el sistema de archivos , y/o en la galería. Algunas otras propiedades útiles incluyen : autohide (boolean ) si la cámara debe ocultarse automáticamente después de que la captura de los medios de comunicación se completa ( por defecto es true ) ( iOS solamente ) animated ( boolean) si el diálogo debería estar animado (por defecto es true) al mostrar y ocultar (Android y iOS solamente) AllowEditing (boolean ) si los medios de comunicación deben ser editables después de la captura en la interfaz de la interfaz de usuario ( sólo para iOS ) mediaTypes una serie de constantes de tipo de medios de comunicación con el apoyo de la interfaz de usuario del dispositivo de captura ( iOS solamente) videoMaximumDuration (float ) la duración del tiempo en milisegundos para permitir la captura antes de terminar ( iOS solamente) videoQuality ( Ti.Media constante) para indicar la calidad de vídeo durante la captura ( iOS solamente) showControls (boolean ) para indicar si se incorporan controles en los controles de interfaz de usuario ( iOS solamente) Overlay ( Ti.UI.View ) que se añade como una superposición a la interfaz de usuario de la cámara ( en la parte superior ) ( iOS solamente)
Usted puede previamente, comprobar la disponibilidad de la cámara con la propiedad Titanium.Media.isCameraSupported : es falsa si el dispositivo no tiene cámara. El simulador / emulador no tiene soporte de la cámara . Otros dispositivos sin cámaras incluyen tercera generación y más viejos iPods, el Nook Color y Kindle Fire . Soporte de la cámara delantera/trasera Usted puede tener acceso tanto a la que se enfrentan las cámaras frontal y posterior , si el dispositivo dispone de esas cámaras. El siguiente fragmento de código muestra una forma en que podría hacer esto. Las propiedades más importantes son el método Ti.Media.CAMERA_REAR y Ti.Media.CAMERA_FRONT así como la Ti.Media.switchCamera() var cameras = Ti.Media.availableCameras; for (var c=0; c < cameras.length; c++) { // if we have a rear camera ... we add switch button if (cameras[c]==Ti.Media.CAMERA_REAR) { overlay.add(cameraType); cameraType.addEventListener('click',function() { if (Ti.Media.camera == Ti.Media.CAMERA_FRONT) { cameraType.title = "front"; Ti.Media.switchCamera(Ti.Media.CAMERA_REAR); } else { cameraType.title = "rear"; Ti.Media.switchCamera(Ti.Media.CAMERA_FRONT); } }); break; } }
Galería Usted abre la galería nativa mediante una llamada al método
openPhotoGallery () Al igual que con la cámara , se definen tres funciones de devolución de llamada que se llaman según el éxito , cancelación , y eventos de error. Los métodos de la cámara y de la galería son muy similares. Basta con sustituir showCamera () con openPhotoGallery () en el bloque de código anterior y usted será bueno para ir. Algunas otras propiedades útiles incluyen : animated ( boolean) si el diálogo debería ser animado (por defecto es true) al mostrar y ocultar AllowEditing (boolean ) si los medios de comunicación deben ser editables después de la captura en la interfaz de la interfaz de usuario saveToPhotoGallery (boolean ) si los medios modificados deben ser guardados fuera de la galería , por lo general sólo es útil con AllowEditing = true mediaTypes una serie de constantes de tipo de medios de comunicación con el apoyo de la interfaz de usuario del dispositivo de captura showControls ( boolean ) para indicar si el incorporado en los controles de interfaz de usuario se debe mostrar overlay ( Ti.UI.View ) que se añade como una superposición a la interfaz de usuario de la cámara ( en la parte superior ) popoverView ( Ti.UI.View ) (sólo iPad) para posicionar la galería de fotos en una vista específica (popover) arrowDirection (sólo iPad) controlar el tipo de flecha y la posición de la galería
API de Vídeo Incluye cómo se pueden insertar vídeos dentro de sus aplicaciones. También cómo reproducir archivos locales y cómo transmitir vídeos remotos. Podemos utilizar el Titanium.Media.VideoPlayer para reproducir vídeos en la app de Titanium. Este objeto crea cuando se llama Titanium.Media.createVideoPlayer () Se proporcionan métodos útiles, como el play() , pause() y stop() . Puede reproducir archivos de vídeo locales, llamamos al método setMedia() o ajustando la propiedad de medios. Ambos aceptan un archivo (File) o un objeto Blob. Puede reproducir un vídeo remoto llamando al método setUrl () o estableciendo la propiedad url. Por último, se puede establecer la propiedad de reproducción automática en true para reproducir automáticamente el vídeo. El VideoPlayer es tratado como una View regular de Titanium. Por lo tanto, puede superponer las imágenes y vistas sobre el VideoPlayer mediante su inclusión en la jerarquía de vistas. De esta manera: var activeMovie = Titanium.Media.createVideoPlayer(); // create a label var movieLabel = Titanium.UI.createLabel({ text:'Do not try this at home', width:'auto', height:35, color:'white', font:{fontSize:24,fontFamily:'Helvetica Neue'} }); // add label to view activeMovie.add(movieLabel); En Android, el VideoPlayer debe ser utilizado de pantalla completa. No puede ser embebido en una vista más pequeña. Esto se debe a que en Android, el VideoPlayer no es técnicamente un proxy para un objeto de vista nativo como lo es en iOS. En su lugar, la creación de la VideoPlayer gatilla un proceso intent que se lanza el reproductor de video de Actividad nativa. Es por esta razón que en Android, no se peude llamar a win.add (videoPlayer). Si es así causaría un error. En iOS, puede incrustar el reproductor de video dentro de una ventana o vista; que no tiene que ser mostrado a tamaño completo. Basta con establecer las propiedades de alto y ancho en la VideoPlayer. Para ver el reproductor de pantalla completa, se puede establecer videoPlayer.fullscreen = true.
Usted puede controlar la forma en que se muestran los controles de reproducción de vídeo para el reproducto. Usted puede "integrar" el dentro del reproductor, de ésta manera: activeMovie.add(movieLabel); var activeMovie = Titanium.Media.createVideoPlayer({ url:'../movie.mp4', movieControlStyle: Titanium.Media.VIDEO_CONTROL_EMBEDDED });