【问题标题】:Playing audio files on the iPhone在 iPhone 上播放音频文件
【发布时间】:2009-08-30 07:33:03
【问题描述】:

我制作了一个简单的应用程序,其中有一个歌曲列表。用户点击列表条目,歌曲开始播放。

我从 Apple 的示例项目(例如 Metronome、BubbleLevel)中提取了 SoundEffect 类。使用以下代码似乎可以正常工作:

// declare in the .h file
SoundEffect *audio;

// setup - when controller loads
audio = [SoundEffect alloc];

// play when user taps entry
NSBundle *mainBundle = [NSBundle mainBundle];   
[audio initWithContentsOfFile:[mainBundle pathForResource:@"entry1" ofType:@"mp3"]];
[audio play];

但是,如果“音频”对象已经在播放,我想在它再次开始播放声音之前停止它。 SoundEffect 类没有停止方法,或者我只是缺少一些东西。

如何在再次播放之前停止音频?

【问题讨论】:

    标签: iphone objective-c iphone-sdk-3.0 core-audio


    【解决方案1】:

    你为什么不直接使用AVAudioPlayer

    【讨论】:

    • 谢谢,我不知道这门课。关于它的一个问题是,如果您[播放]文件,然后[停止]音频,然后再次[播放],它将从中断的地方开始播放。诀窍是在停止时将 .currentTime 设置为 0。
    • "将 .currentTime 设置为 0" -- 谢谢!
    【解决方案2】:

    SoundEffect 类是基于 C 的 System Sounds API 的包装器(请参阅 Bubble Level 项目中的 .m file),这是一个简单的“即发即弃”风格的 API,不提供“停止”功能。更多信息在System Sounds Services Reference

    我也同意(并已投赞成票)zoul 使用AVAudioPlayer 的建议。系统声音完全不适合长的编码音频文件,例如 MP3 文件中的歌曲。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多