es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Apple MusicKit no reproduce el álbum por identificador.

He creado un botón que toma el ID de la tienda del álbum seleccionado y lo coloca en una cola para el reproductor de música, pero por alguna razón, no se reproduce y devuelve el siguiente error:

Error al preparar para reproducir: Error Domain=MPMusicPlayerControllerErrorDomain Code=6

Aquí está el código del botón (puse las variables del reproductor aquí para que sea más fácil):

var storeIds: [String] = ["ID"]
Button(action: {
    let player = MPMusicPlayerController.applicationQueuePlayer
    let queue = MPMusicPlayerStoreQueueDescriptor(storeIDs: storeIds)
    storeIds = ["\(album.id)".replacingOccurrences(of: "l.", with: "")]

    print("ID:", storeIds) // Ejemplo de ID: ["Qn4Bnha"]
    player.setQueue(with: storeIds)
    player.play()
})

También, elimino el “l.” del ID porque todos los álbumes comienzan con eso, lo cual no es necesario.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que puede haber un problema al preparar el reproductor de música para reproducir el álbum seleccionado utilizando la storeID proporcionada.

    Una cosa a comprobar es si la storeID que estás pasando al método setQueue es válida y accesible. También asegúrate de que el MPMusicPlayerController no esté reproduciendo otra pista o lista de reproducción.

    Otra sugerencia sería añadir un controlador de finalización al método setQueue para obtener más información sobre cualquier error que pueda ocurrir durante el proceso de preparación.

    Aquí tienes un fragmento de código actualizado con las modificaciones mencionadas:

    var storeIds: [String] = ["ID"]
    Button(action: {
        let player = MPMusicPlayerController.applicationQueuePlayer
        let queue = MPMusicPlayerStoreQueueDescriptor(storeIDs: storeIds)
        storeIds = ["\(album.id)".replacingOccurrences(of: "l.", with: "")]
    
        print("ID: ", storeIds) // Example ID:  ["Qn4Bnha"]
        player.setQueue(with: queue) { error in
            if let error = error {
                print("Error al preparar para reproducir: \(error.localizedDescription)")
            } else {
                player.play()
            }
        }
    })
    

    ¡Espero que esto ayude!

Comments are closed.