问题标签 [avaudioplayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6795 浏览

ios - 降低 iPod 音量以播放应用声音(如原生 SMS 应用)

我制作了一个 iPhone 应用程序,可以在锻炼时使用。它会发出铃声,表示您(用户)应该从锻炼程序的一个步骤切换到下一步。我设计了该应用程序,以便您在使用该应用程序时可以在 iPod 上听音乐,并且我希望在音乐上播放的音调足够清晰。我已经得到了这个工作......有点......

当音乐响亮时,很难听到音调。我的理想解决方案类似于 iPod 应用程序处理传入的文本消息或电子邮件的方式。音乐音量降低,声音播放,然后音乐音量逐渐减弱。

以下是我迄今为止尝试过的方法:

  1. 我以前AudioServicesPlaySystemSound玩的声音。

    我像这样初始化声音:

    我在适当的时间使用以下方法播放声音:

    这可以很好地播放声音,但是在嘈杂的音乐中很难听到。继续尝试 2...

  2. 我尝试降低 iPod 的音量,播放声音,然后将音量恢复到之前的水平。

    如果当前步骤还剩 1 秒,请开始降低音量:

    这是fadeVolumeOut:方法:

    然后,当该步骤结束时,播放警报声并将音量淡入:

    这是alertAndFadeVolumeIn方法:

    并且fadeVolumeIn:基本上与fadeVolumeOut:上述相反。

    这有效,音量淡出,声音播放,然后音量淡入。问题是音量降低了与 iPod 相同的量,所以它不会让听音乐变得更容易.

  3. 我切换到AVAudioSession播放声音,并设置会话,以便在使用应用程序时继续播放 iPod 音乐。这是我初始化会话的方式:

    为了播放声音,我[self.player play]会在适当的时候打电话。再次,音量随着 iPod 音量的降低而降低,并且音调不再容易听到。

  4. 我试着[[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0f];在警报声响起之前把它放好。这有好坏参半的结果。第一次声音像我希望的那样以最大音量播放,但随后的音量要低得多。此外,音乐不会顺利淡出。似乎iPodMusicPlayer并且applicationMusicPlayer正在共享相同的卷。这是使用的结果[AVAudioSession sharedInstance];吗?有没有另一种方法来初始化一个AVAudioSession

  5. 接下来,我尝试使用AVAudioSession“闪避”:

    不幸的是,当音频会话被激活时,iPod 音乐会“躲避”,这是在 viewController 以我的方式加载后立即出现的。

  6. 最后,我更改了我的代码,以便在步骤结束前一秒激活音频会话,在步骤结束时播放声音,一秒后停用会话。此时我已经删除了所有的淡入淡出代码。以下是相关的代码片段:

    ...

    ...

    这将我带到了我真正陷入困境的地步。这在第一步结束后完美运行。iPod 音量降低,声音响亮,然后 iPod 音量在一秒钟后逐渐减弱。然而,第二次踏步结束时声音会稍微小一些,第三次几乎听不见,第四次无声。然后,第五次,它再次大声播放,循环重复。

    最重要的是,激活和停用似乎是相当繁重的操作,它们会导致计时器略微卡顿。

有没有人试图做类似的事情?有没有首选的方法来通过 iPod 音乐播放声音?

0 投票
1 回答
1265 浏览

ios-simulator - 关于 MPMusicPlayerController 和 AVAudioPlayer 在 iPhoneSimulator 中是否有效?

(iPhone) 我可以使用调度程序执行 AudioServicesPlaySystemSound 循环吗?

MPMusicPlayerController 不起作用,因为它是关于 iPod 音乐库的,我无法向其中添加音乐文件,因为我正在玩 iPhone 游戏并且不与外部 iPod 库交互。

AVAudioPlayer 可以在 iPhoneSimulator 中使用吗?

0 投票
1 回答
1567 浏览

iphone - 在屏幕锁定时停止播放 AVAudioSession

我在 AVAudioSessionCategoryPlayback 类别下有一个 AVAudioSession。我需要能够在屏幕锁定时停止或暂停播放。有什么办法可以做到这一点?

到目前为止,唯一会中断我的音频会话的是来电。

提前致谢!

0 投票
5 回答
882 浏览

iphone - iPhone:如何在特定时间播放声音?

我写了以下代码:

我想播放音频文件而不是振动 iPhone。那可能吗?

0 投票
3 回答
2819 浏览

iphone - 如何调试 AVAudioPlayer 播放失败?

我正在使用 AVAudioPlayer 从我的应用程序的 Documents 目录中播放单声道 AIFF 文件。

在模拟器上,[player play] 返回 YES,我听到文件正在播放。在设备上,播放方法返回 NO 并且没有任何反应。我通过 Organizer 抓取了该文件——它在我的 Mac 上可以正常播放,而且格式似乎很好。我意识到模拟器可以访问 iPhone 上不可用的编解码器,但在这种情况下应该没关系,不是吗?

我不知道如何调试它。有什么建议么?

0 投票
2 回答
2879 浏览

iphone - 在 iphone sdk 上播放 mp3?

我可以让音频正常播放,但是如何制作一个停止音频的按钮?

0 投票
2 回答
4925 浏览

iphone - iPhone:AVAudioPlayer/NSURL 内存管理

几分钟前我发布了一个更长的问题,并且通常我一发布它就知道发生了什么,所以我删除了它,因为大部分帖子都无关紧要。然后我回到谷歌。

事实证明,我遇到了与这篇文章中描述的几乎完全相同的问题,从 6 月开始没有得到答复。http://www.iphonedevsdk.com/forum/iphone-sdk-development/20975-avaudioplayer-nsurl-memory-management.html

总之:我正在使用 AVAudioPlayer 并使用 audioPlayerDidFinishPlaying:successfully: 委托方法发布它。初始化播放器后,需要释放其关联的 NSURL 对象,否则会泄漏。但是当我在初始化播放器后释放它时,它会崩溃,因为它已经被释放了。奇怪的是它并不总是第一次崩溃,大多数时候它在播放第二个声音后就崩溃了。有时(很少)它会允许少数或玩家在崩溃之前被分配/释放(我在释放后重用指针)。有什么帮助吗?

代码片段:(soundKeyUp 是一个 AVAudioPlayer* 类变量,因此这里没有声明)

对 Steve Riggins 的回应:如前所述,它的诀窍在于它不会每次都同时崩溃。它几乎总是第一次正确释放(或者至少它不会崩溃或泄漏),但通常在我第二次分配/释放播放器和 URL 之后,它在释放 URL 时崩溃。有时,它会在崩溃之前运行 3、4、5 次以上,但它总是如此。

0 投票
1 回答
1991 浏览

objective-c - 查明 AVAudioPlayer 是否在函数内完成播放

如何确定 AVAudioPlayer 是否在函数内完成了声音的播放?

0 投票
1 回答
196 浏览

ios - MP3播放和停止问题?

这段代码工作正常,直到我退出视图并尝试回到它。如果我这样做,停止按钮将不再起作用。离开视图后如何让它仍然工作?

0 投票
1 回答
1723 浏览

iphone - AVAudioPlayer initialization error 1685348671. How to check whether file is valid?

I am using AVAudioPlayer to play some ima4 files. The initialization of the player keeps failing with error code 1685348671 (dta) which according to the documentation means

The file is malformed, not a valid instance of an audio file of its type, or not recognized as an audio file. Available in iPhone OS 2.0 and later.

What I don't understand is how the files are invalid or malformed when I can play them with QuickTime? Can the file still be malformed? How can I check whether an ima4 file is valid or not?

Thanks.