用AVAudioplayer流式传输

Kle*_*lem 7 iphone streaming avaudioplayer

为了加载声音文件,我在我的应用程序中有以下代码:

- (id) init:(NSString*)a_filename ext:(NSString*)a_ext 
{
    ...

    NSString *t_soundFilePath = [CFileLoader getPathForResource:filename WithExtension:ext];
    NSURL *t_fileURL = [[[NSURL alloc] initFileURLWithPath: t_soundFilePath] autorelease];

    player = [[AVAudioPlayer alloc] initWithContentsOfURL: t_fileURL error: nil];
    [player prepareToPlay];
    ...

    }
Run Code Online (Sandbox Code Playgroud)

我加载的所有声音都在我的包中,所以我想知道方法"initwithcontentsofurl"是否流式传输声音文件或是否所有文件都被缓存.

我的应用程序中有很多精灵,所以我想减少用于声音的内存空间.

谢谢你的帮助

tit*_*coy 7

我使用AVPlayer(不是AVAudioPlayer)来传输背景音频.


saa*_*nib 6

如果您想在应用中流式传输音频,可以使用以下播放器而不是使用AVAudioPlayer

https://github.com/mattgallagher/AudioStreamer

对于此播放器,您不需要将声音文件放在捆绑包中,您可以将它们放在服务器上并使用URL来传输音频.

希望,这将帮助你.


gnu*_*chu 6

使用AVAudioPlayer播放的声音是从存储实时流式传输的.缺点是你可能偶尔会注意到启动时的小延迟.如果使用OpenAL,声音将完全加载到内存中.

ObjectAL文档中对这类事情进行了很好的讨论- 这是一个旨在简化iPhone上声音和效果播放的库.