首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer类事件

AVPlayer类事件
EN

Stack Overflow用户
提问于 2011-08-30 23:13:42
回答 5查看 4.4K关注 0票数 4

AVPlayer类中有没有委托方法?我需要处理中断,如电话呼叫等。AVAudioPlayer支持。如果AVPlayer不支持,如何用AVAudioPlayer流式播放音频?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-12 02:53:14

AVPlayer没有您想要的方法,但是您可以改用AVAudioSession对象

1)选择AVAudioSession对象(例如[AVAudioSession sharedInstance])

2)调用setActive:error:方法将其设置为活动

3)设置其代理(实现AVAudioSessionDelegate协议的类)

4)实现委托的方法,如

代码语言:javascript
复制
-(void)beginInterruption;
-(void)endInterruptionWithFlags:(NSUInteger)flags;
-(void)endInterruption;
票数 8
EN

Stack Overflow用户

发布于 2011-08-30 23:18:27

编辑

我在AVPlayer class中看不到任何可用的委派

那么,如何使用AVAudioPlayer流式传输音频呢?因为我们不知道您需要如何流式传输它,最重要的是,的提供了一些灵感

查看相关问题:

和教程

  • http://mobileorchard.com/easy-audio-playback-with-avaudioplayer/

AVAudioPlayerDelegate协议参考 http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVAudioPlayerDelegateProtocolReference/Reference/Reference.html#//apple_ref/doc/uid/TP40008068

声音播放完成

  • Responding

-音频解码错误的audioPlayerDidFinishPlaying:successfully:

  • Responding

-audioPlayerDecodeErrorDidOccur:错误:

  • Handling音频中断

- audioPlayerBeginInterruption:

- audioPlayerEndInterruption:

- audioPlayerEndInterruption:withFlags:

票数 1
EN

Stack Overflow用户

发布于 2011-08-30 23:23:13

我不认为AVPlayer会带你去那里。看看AVAudioPlayerDelegate,audioPlayerBeginInterruption将是您正在寻找的委托方法。

下面是我在AVAudioPlayer中使用的代码示例(我假设你已经知道如何构建你的url):

代码语言:javascript
复制
// Instantiates the AVAudioPlayer object, initializing it with the sound
NSError * errAV = nil;
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfUrl: mUrl error: &errAV];
if (newPlayer == nil) {

    NSString * msg = [[NSString alloc] initWithFormat:@"An internal error has occured:  %@", [errAV localizedDescription]];
    UIAlertView *uiav = [[UIAlertView alloc] initWithTitle:@"Play Sound" 
                                                   message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [uiav show];
    [uiav release];
    [msg release];
} else {

    self.appSoundPlayer = newPlayer;
    [newPlayer release];
    // "Preparing to play" attaches to the audio hardware and ensures that playback
    //      starts quickly when the user taps Play
    [appSoundPlayer prepareToPlay];
    [appSoundPlayer setVolume: 1.0];
    [appSoundPlayer setDelegate: self];
    [appSoundPlayer play];
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7245465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档