AVPlayer删除背景音乐

时间:2014-08-09 06:03:40

标签: ios avplayer

我一直在使用giffycat在我的应用中解码,存储和播放GIF。我正在制作它,以便它可以轻松地在UICollectionView的单元格中加载一个gif,所以我决定让每个gif模型都拥有自己的AVPlayer。我注意到,只需创建一个AVPlayer,如下所示,来自其他应用程序的音频就会被杀死!对于用户和创作者来说都很烦人!

// Create an AVURLAsset with an NSURL containing the path to the video
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:_mp4] options:nil];
// Create an AVPlayerItem using the asset
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:asset];
_player = [AVPlayer playerWithPlayerItem:item]; //if this line is commented out, I hear audio, else audio from Spotify is quickly killed...

由于这些视频只是GIF,我想知道是否有某种方法可以取消分配音频会话。我对此并不了解。 ples help!

2 个答案:

答案 0 :(得分:20)

经过一番谷歌搜索和文档阅读后,答案很简单...... 解决方案是

// audio session
let audioSession = AVAudioSession.sharedInstance()
try! audioSession.setCategory(AVAudioSessionCategoryAmbient,
  withOptions: AVAudioSessionCategoryOptions.MixWithOthers)

oops,刚刚意识到我在objC中发布我的问题并在Swift中回答。很难,因为有时候这是生活。

AudioSession是整个应用程序的单例,用于统治您的应用程序如何与系统和其他应用程序的其他声音混合!默认音频会话是

  1. 启用播放,禁用录制
  2. 当用户将静音开关移至"静音"您的音频已静音
  3. 当用户按下睡眠/唤醒按钮锁定屏幕或自动锁定期限到期时,您的音频会静音
  4. 当您的音频开始时,设备上的其他音频(音乐)会被静音。
  5. CategoryAmbient告诉它不要做4

    很好的文档! https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/ConfiguringanAudioSession/ConfiguringanAudioSession.html#//apple_ref/doc/uid/TP40007875-CH2-SW1

答案 1 :(得分:-1)

在创建AVPlayer之前,将AVPlayerItem的audioMix属性设置为nil,以从资源中删除音轨。