Mp3Player en SwiftUI

MP3Player es una aplicación sencilla para macOS, basada en SwiftUI, diseñada para reproducir archivos de audio MP3 y M4A con una interfaz moderna. La aplicación sigue las prácticas de SwiftUI y muestra el uso de concurrencia de Swift, gestión de estado e integración con el sistema. Aunque es una aplicación plenamente funcional, hay que tomarla también como una manera de aprender SwiftUI.

Características

  • Idiomas: Inglés y español
  • Abrir archivos de audio: Abre archivos de audio MP3 y M4A para reproducir
  • Abrir directorios: Carga todos los archivos MP3 y M4A de un directorio
  • Menú Play: Menú dedicado con atajos de teclado para todos los controles de reproducción
  • Controles de reproducción: Botones Reproducir/Pausar, Detener, Anterior, Siguiente
  • Modo aleatorio: Reproducción aleatoria de pistas
  • Visualización de tiempo: Muestra el tiempo transcurrido y el tiempo restante para la pista actual
  • Información de la pista: Muestra el título de la canción y el artista extraídos de los metadatos del audio
  • Estado persistente: Guarda y restaura automáticamente la última pista reproducida
  • Abrir con Finder: Soporte para abrir archivos MP3 y M4A a través del Finder
  • Fondo de carátula de álbum: Muestra la imagen de la carátula del álbum como fondo difuminado cuando está disponible
  • Icono en la barra de menú: Muestra un icono de nota musical en la barra de menú de macOS mientras la aplicación está en ejecución
  • Notificaciones de cambio de canción: Muestra notificaciones de macOS con el título y el artista cada vez que cambia una canción (macOS 15+).

Requisitos

  • macOS 13.0 o posterior
  • Xcode 15.0 o posterior

Uso

  • Usa el menú Archivo o los atajos de teclado para abrir:
    • Archivo individual: Presiona Cmd+O o ve a Archivo > Abrir archivo de audio…
    • Directorio: Presiona Cmd+D o ve a Archivo > Abrir directorio…
  • Usa el menú Play o los atajos de teclado para controlar la reproducción:
    • ⏪️ Pista anterior: Ctrl+A o ve a Play > Anterior
    • ▶️ Reproducir / ⏸️ Pausar: Ctrl+P o ve a Play > Reproducir/Pausar
    • ⏹️ Detener reproducción: Ctrl+S o ve a Play > Detener
    • ⏩️ Pista siguiente: Ctrl+N o ve a Play > Siguiente
    • 🔀 Activar/desactivar modo aleatorio: Ctrl+H o ve a Play > Aleatorio
  • También puedes usar los botones de control de reproducción en la ventana de la aplicación.
  • Haz clic derecho en un archivo MP3 o M4A para abrirlo a través del Finder.

Nota sobre las notificaciones

Las notificaciones de cambio de canción solo están habilitadas en macOS 15 Sequoia y macOS 26 Tahoe. macOS 14 Sonoma y versiones anteriores tienen problemas de compatibilidad con la visualización de notificaciones, por lo que muestran el icono en la barra de menú pero no las notificaciones.

La aplicación descargada se puede abrir

Las condiciones que Apple impone para mantener la seguridad y privacidad del usuario son cada vez más estrictas. Esto, por supuesto, beneficia a los usuarios, pero también tiene sus inconvenientes.

Al descargar un archivo de Internet, se le añade un atributo extendido llamado com.apple.quarantine para que Gatekeeper solicite confirmación antes de ejecutarlo.

En versiones anteriores a Sequoia, la advertencia de Gatekeeper para archivos descargados de Internet tenía una solución sencilla: aceptar la advertencia al abrir el archivo o hacer clic derecho sobre él -> Abrir.

Pero en Sequoia y Tahoe, la advertencia es más seria y puede asustar al usuario. Puede mostrar este mensaje: «La aplicación está dañada y no se puede abrir.» O este otro: «No se ha podido verificar que Download Full Installer no contenga software malicioso.» Con la recomendación en ambos casos de trasladar el archivo a la Papelera.

Esta es la advertencia que aparece cuando la aplicación no está firmada digitalmente ni notarizada por Apple, en cuyo caso la advertencia es más benigna, similar a las versiones anteriores a Sequoia.

Actualmente, se requiere una cuenta de desarrollador de Apple para firmar digitalmente o notarizar aplicaciones. Sin embargo, muchos desarrolladores no quieren registrarse en el Programa para Desarrolladores de Apple, ya sea por el coste o porque desarrollan pequeñas aplicaciones que se distribuyen gratuitamente.

Este es el caso de muchas de las aplicaciones que publicamos de forma amateur, firmadas ad hoc y sin notarizar. Aunque el código fuente de este tipo de aplicaciones suele estar disponible y se puede explorar para determinar si existen condiciones que debiliten la seguridad, esta advertencia puede generar sospechas.

Los usuarios que tengan Gatekeeper desactivado no verán esta advertencia. Sin embargo, desactivar Gatekeeper globalmente para ejecutar una sola aplicación no es una recomendación válida.

¿Cómo solucionar este problema?

Configuración del sistema >> Seguridad y privacidad

Primero, ve a «Privacidad y seguridad» para ver si hay un mensaje que indica que la aplicación descargada está bloqueada con la opción «Abrir de todas formas». Esta es la forma más sencilla de solucionarlo.

Al hacer clic en «Abrir de todas formas», macOS volverá a preguntar si desea abrir el archivo y, si responde que sí, solicitará la contraseña de usuario y lo abrirá.

Herramienta de línea de comandos xattr

xattr gestiona los atributos extendidos que son metadatos adicionales adjuntos a archivos y directorios, además de la información estándar como el nombre o el tamaño. Esta herramienta está integrada en macOS de forma nativa. Con xattr puedes eliminar el atributo com.apple.quarantine de cualquier archivo descargado de Internet; la tarea es bastante sencilla.

xattr sin argumentos muestra los atributos extendidos:

> sudo xattr /Applications/Download\ Full\ Installer.app
> com.apple.quarantine

xattr -cr elimina todos los atributos extendidos:

> sudo xattr -cr /Applications/Download\Full\Installer.app

Después de este comando, xattr ya no muestra el atributo extendido com.apple.quarantine:

> sudo xattr /Applications/Download\Full\Installer.app
> (sin salida)

Editor Xattr

El Editor Xattr es una sencilla aplicación GUI para ver/editar atributos extendidos de archivos en macOS. Tiene su propio repositorio.

Resultado

En cualquier de los casos, ya sea por Ajustes del Sistema, Editor Xattr o xattr, a partir de este momento la aplicación descargada se ejecutará sin avisos de seguridad, ya que se ha eliminado el atributo com.apple.quarantine.

Projecto Xcode

Puedes descargar el projecto Xcode desde aquí. O la aplicación ya compilada desde aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *