2017-08-06 6 views
1

異なるボリュームの2つの異なるMPMusicPlayerControllersでエフェクトを作成しようとしています。私はまだ今MPMusicPlayerController.volume is deprecatedは、私が別のボリュームを持つ2つのMPMusicPlayerControllersを作成する方法を見つけ出すように見えることはできませんということ異なるボリュームで同時に2つのDRM保護された曲を再生する

let musicPlayerController = MPMusicPlayerController.systemMusicPlayer 

let volumeController = MPVolumeView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) 
self.view.addSubview(volumeController) 

// get the UISlider for the MPVolumeView 
let volumeSlider = volumeController.volumeSlider 
volumeSlider.value = 0.5 

musicPlayerController.play() 

のボリュームを1 MPMusicPlayerControllerを作成して設定することができるよ...私が探していますこの

let musicPlayerController = MPMusicPlayerController() 
musicPlayerController.volume = 0.5 
//set the song 
musicPlayerController.play() 

let otherPlayerController = MPMusicPlayerController() 
otherPlayerController = 0.5 
//set the song 
otherPlayerController.play() 

のようなもののために私はそれのためのDRM保護されたファイルを持っている制限のAVAudioPlayerを使用することができませんよ。私は本質的に、異なるボリュームレベルで同時に2つのDRM保護された音楽ファイルを再生しようとしています。

異なるMPMusicPlayerControllersをiOS 10または11の異なるボリュームに作成する方法はありますか(同じMPMusicPlayerControllerの異なるボリュームで2つの曲を再生するようなもの)?ハッキリの回避策は大歓迎です。

+0

私はsystemMusicPlayerがシングルトンであるシステム全体の音楽プレーヤーへの参照に過ぎないと思います。 appMusicPlayerを試して、別の結果が得られるかどうかを確認してください。 let player01 = MPMusicPlayerController.applicationMusicPlayer() let player02 = MPMusicPlayerController.applicationMusicPlayer() – solenoid

+0

@solenoidお返事ありがとうございました!私はそれをやろうとしましたが、2つの音量をどのように変更するかは分かりません(後ほど質問しましたが、タイトルに含める必要がありました - 投稿を更新しました) – Jojodmo

+0

Ahh音量 - 私はそれに疑問を抱いている。好奇心の中で、AVPlayerで再生されない音楽は何ですか?私のアプリでは、私は地元の音楽だけを再生し、古いスタイルのDRMの曲だけが読み込まれません。 – solenoid

答えて

1

私はAppleに連絡しており、現時点ではこれを行う方法がないことを確認しました。私はフィーチャー提案を提出しましたので、今後これを見ることができれば幸いです。

グローバルハンドラとデリゲートを使用して、アプリケーションがハンドラ(MPDRMMusicHandler.sharedのようなもの)にコマンドを作成し、デリゲートMPDRMMusicDelegateを介してこれらのコマンドへの応答を受け取ることをお勧めしますMPDRMMusicHandler

暗号化されていない生の音楽データにアクセスすることはできません。アプリは、再生する音楽のリクエストとその特性を設定することしかできないためです。次に、デリゲート関数は、コマンドが成功したかどうか、失敗した場合はエラーを返して、それらのコマンドに対する応答で呼び出されます。 DRMで保護された音楽の解読はすべて、アプリケーションとは別にiOSによって処理されます(または、少なくともプライベートライブラリ開発者は「アクセスできません」)。

関連する問題