iPhoneプログラミングの質問です。
iPodで曲を再生しながら起動するアプリから、
その曲をフェードアウトし、アプリで音を再生し、
それが終わると、フェードインで元々の曲を
再生するコードを教えてください。
iPhoneアプリケーションプログラミングガイド
http://developer.apple.com/jp/iphone/library/documentation/iPhoneAppProgrammingGuide
は見ていますが、そういう解説はなさそうで、
自前でiPodライブラリから再生する方法
なら、なんとかなりそうですが・・・
同じような質問がStackOverflowにありました。
http://stackoverflow.com/questions/386111/why-does-ipods-audio-n...
MediaPlayer.frameworkをインポートしてiPodライブラリにアクセスし、一時停止させているようです。
http://developer.apple.com/iphone/library/documentation/MediaPla...
フェードアウトの処理は、おそらく
float volume = [MPMusicPlayerController iPodMusicPlayer].volume;
として最初のボリュームを覚えておいて、NSTimerなどのループを使って
float currentVolume = [MPMusicPlayerController iPodMusicPlayer].volume; if (currentVolume > 0.1) { [MPMusicPlayerController iPodMusicPlayer].volume = currentVolume - 0.1; } else if (currentVolume != 0) { [MPMusicPlayerController iPodMusicPlayer].volume = 0; }
を繰り返すことで音量を0にして、最終的には
[[MPMusicPlayerController iPodMusicPlayer] pause]; [MPMusicPlayerController iPodMusicPlayer].volume = volume;
として一時停止させます。
そして任意の音声を再生した後、
[MPMusicPlayerController iPodMusicPlayer].volume = 0;
[[MPMusicPlayerController iPodMusicPlayer] play];
として再生を始め、やはりNSTimerなどのループでフェードインさせていきます。
float currentVolume = [MPMusicPlayerController iPodMusicPlayer].volume; if (currentVolume < (volume - 0.1)) { [MPMusicPlayerController iPodMusicPlayer].volume = currentVolume + 0.1; } else if (currentVolume != volume) { [MPMusicPlayerController iPodMusicPlayer].volume = volume; }
僕自身このあたりの処理に詳しくないためあまり自信がありませんが、解決の一助となれば幸いです。
ありがとうございます。
情報は、まさに求めていたものですが、
プロジェクトファイルがダウンロード
期限を過ぎていて・・・
説明だけでも、API名や考え方のヒントは
散りばめられていますが、もう少し
詳しい情報が欲しいです。
同じような質問がStackOverflowにありました。
http://stackoverflow.com/questions/386111/why-does-ipods-audio-n...
MediaPlayer.frameworkをインポートしてiPodライブラリにアクセスし、一時停止させているようです。
http://developer.apple.com/iphone/library/documentation/MediaPla...
フェードアウトの処理は、おそらく
float volume = [MPMusicPlayerController iPodMusicPlayer].volume;
として最初のボリュームを覚えておいて、NSTimerなどのループを使って
float currentVolume = [MPMusicPlayerController iPodMusicPlayer].volume; if (currentVolume > 0.1) { [MPMusicPlayerController iPodMusicPlayer].volume = currentVolume - 0.1; } else if (currentVolume != 0) { [MPMusicPlayerController iPodMusicPlayer].volume = 0; }
を繰り返すことで音量を0にして、最終的には
[[MPMusicPlayerController iPodMusicPlayer] pause]; [MPMusicPlayerController iPodMusicPlayer].volume = volume;
として一時停止させます。
そして任意の音声を再生した後、
[MPMusicPlayerController iPodMusicPlayer].volume = 0;
[[MPMusicPlayerController iPodMusicPlayer] play];
として再生を始め、やはりNSTimerなどのループでフェードインさせていきます。
float currentVolume = [MPMusicPlayerController iPodMusicPlayer].volume; if (currentVolume < (volume - 0.1)) { [MPMusicPlayerController iPodMusicPlayer].volume = currentVolume + 0.1; } else if (currentVolume != volume) { [MPMusicPlayerController iPodMusicPlayer].volume = volume; }
僕自身このあたりの処理に詳しくないためあまり自信がありませんが、解決の一助となれば幸いです。
ご回答ありがとうございます。
すぐに試せませんが、かなり有力
(まだObjective-Cに不慣れながらも納得&理解できる)
情報です。
追って、結果をご報告します。
ご回答ありがとうございます。
すぐに試せませんが、かなり有力
(まだObjective-Cに不慣れながらも納得&理解できる)
情報です。
追って、結果をご報告します。