Tag: avaudioplayer

iOS:如何播放audio没有FPS滴?

我正在使用Sprite Kit开发iOS 9+游戏,最好使用Swift库。 目前我正在使用一个Singleton,我预先加载我的audio文件,每个连接到一个单独的AVAudioPlayer实例。 下面是一个简短的代码,以获得这个想法: import SpriteKit import AudioToolbox import AVFoundation class AudioEngine { static let sharedInstance = AudioEngine() internal var sfxPing: AVAudioPlayer private init() { self.sfxPing = AVAudioPlayer() if let path = NSBundle.mainBundle().pathForResource("ping", ofType: "m4a") { do { let url = NSURL(fileURLWithPath:path) sfxPing = try AVAudioPlayer(contentsOfURL: url) sfxPing.prepareToPlay() } catch { print("ERROR: Can't load […]

在NSObject类中使用AVAudioPlayer播放audio

为了组织事情,我决定创build一个名为SoundPlayer的类,在那里运行我的应用程序中的所有audio文件。 (这将避免有许多重复的代码) SoundPlayer.h #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundation.h> #include <AudioToolbox/AudioToolbox.h> @interface SoundPlayer : NSObject <AVAudioPlayerDelegate> @property (strong,nonatomic) AVAudioPlayer *backgroundMusicPlayer; -(void)PlaySound:(NSString*)name extension:(NSString*)ext loops:(int)val; @end SoundPlayer.m #import "SoundPlayer.h" @implementation SoundPlayer -(void)PlaySound:(NSString *)name extension:(NSString *)ext loops:(int)val{ NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:name ofType:ext]; NSURL *soundPath = [[NSURL alloc] initFileURLWithPath:soundFilePath]; NSError *error; self.backgroundMusicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundPath error:&error]; self.backgroundMusicPlayer.numberOfLoops = […]

当试图实例化AVAudioPlayer时,NSBundlefindmp3文件,但不是m4a

我有一个简单的应用程序,应该播放一个audio文件。 每当我加载一个MP3文件到我的NSURL工作正常,AVAudioPlayer得到播放歌曲。 但是,当我更改为m4a文件时,NSStringpath返回nil,就像无法find我的文件的path,因此NSURL没有形成。 项目中当然有m4a文件。 它下面的代码,但我不认为是一个代码问题。 任何意识? 谢谢。 NSString *path = [[NSBundle mainBundle] pathForResource:@"end" ofType:@"m4a"]; NSURL *urlFile = [NSURL fileURLWithPath:path]; NSError *error; soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:urlFile error:&error]; if (error) { NSLog(@"Error in audioPlayer: %@",[error localizedDescription]); } else { soundPlayer.delegate = self; [soundPlayer prepareToPlay]; [soundPlayer play]; }

在Swift 2.0中更改AVAudioPlayer的rate var时发生声音失真

我正在制作一个简单的audio播放应用程序。 它有大约10个audio文件,每个文件的正常播放速度为100次/分钟。 用户可以在调用play()函数之前input一个速度variables(70到140 bpm之间),该速度variables被赋予(速度/ 100)到AVAudioPlayer速率var。 @IBAction func playPause(sender: AnyObject) { if !isPlaying { let audioPath = NSBundle.mainBundle().pathForResource(selectedTrack, ofType: "mp3") do { try player = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: audioPath!)) player.enableRate = true player.rate = Float(tempo) / 100 player.play() isPlaying = !isPlaying } catch { print ("play error") } } } 以audio正常速度播放(100b.pm)的效果非常好。 但是,通过改变速度甚至每单一bpm单位,播放听起来真的很差。 速度转换听起来准确(即降低速度变化导致audio变慢,反之亦然),并且音调听起来像保持(尽pipe在持续音符中有点“摇晃”),但音质似乎受到主要方面的负面影响。 我也许会期望这个更为剧烈的利率变动(利率<50%或利率> 200%),但即使在99%和101%的情况下也是非常明显的。 我正在使用44k / […]

如何在AVAudioPlayer中静音?

我创build了AVAudioPlayer ,现在我想在用户点击button时将其静音。 这里我曾经尝试过: player.volume = 1.0 //when first time i initiate my player – (IBAction)speakerOnOff:(id)sender { if (player.volume == 1.0) { [player setVolume: 0.0]; NSLog(@"1volume is:%f",player.volume); }else if (player.volume == 0.0) { [player setVolume: 1.0]; NSLog(@"2volume is:%f",player.volume); } }

背景设备音乐得到停止,因为应用程序启动ios

我在iPhone上播放音乐,当我运行我的应用程序时,不应该停止背景设备音乐,而应该停止自己的音乐,而不是背景音乐停止。 我想要做同样的糖果粉碎应用程序。 我该怎么做才能解决这个问题? 请帮帮我 var isOtherAudioPlaying = AVAudioSession.sharedInstance().otherAudioPlaying println("isOtherAudioPlaying>>> \(isOtherAudioPlaying)") if(isOtherAudioPlaying == false) { audioPlayer1!.play() }

在AVQueuePlayer中检测当前项目并知道它何时更改?

我目前有一个AVQueuePlayer按顺序播放几个.aif文件。 当它通过每个audio时,我想要执行与特定声音相关的操作(例如,更改imageview的uiimage)。 我的问题是正确设置NSNotification。 我已经设置它通知我,当队列完成最后一个对象,但我无法收到每个当前项目的通知。 这是我有什么: //Setting Up My Queue List yellowVoice = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/YellowVoice.aif", [[NSBundle mainBundle] resourcePath]]]]; orangeVoice = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/OrangeVoice.aif", [[NSBundle mainBundle] resourcePath]]]]; redVoice = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/RedVoice.aif", [[NSBundle mainBundle] resourcePath]]]]; pinkVoice = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/PinkVoice.aif", [[NSBundle mainBundle] resourcePath]]]]; NSArray *soundEmotions = [NSArray arrayWithObjects:yellowVoice, […]

设备locking时从iPod库中播放AVAudio

只是一个简单的问题。 我已经build立了我的程序能够在后台播放AVAudioPlayer和AVPlayer ,这是工作正常。 我可以播放一首歌曲,locking我的屏幕,声音将继续播放。 我遇到的麻烦是调用[AVPlayer play]而我的屏幕已被locking。 这最终导致没有音乐被播放。

在iPhone上运行的应用程序的声音太低

我写了一个应用程序应该在iPad和iPhone上运行。 我正在使用AVAudioPlayer播放声音。 现在我遇到了音量级别的一些问题。 当在iPad上运行时,一切正常,声音的音量水平也很好,在iPad模拟器中运行也是如此。 当应用程序在iPhone上运行时出现问题:而iPhone模拟器中的音量水平正常,设备上的音量非常低。 以下是我在两台设备上使用的代码: if (audioPlayerAtmo==nil) { NSString *filename = [NSString stringWithFormat:@"Atmo_%i", currentPage]; NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:filename ofType:@"mp3"]]; AVAudioPlayer *tempPlayer =[[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL]; tempPlayer.delegate = self; //NSLog(@"tempPlayer.volume: %f", [tempPlayer volume]); [tempPlayer setVolume:1.0f]; //NSLog(@"tempPlayer.volume: %f", [tempPlayer volume]); self.audioPlayerAtmo = tempPlayer; [tempPlayer release]; [audioPlayerAtmo play]; btAtmo.selected = YES; } else // […]

应用的audio无法通过扬声器工作

我的应用程序中有一个奇怪的错误。 我使用AVAudioPlayer播放声音(多个实例),通过耳机完美播放声音,但使用没有耳机的应用程序不会产生扬声器的声音。 所有的audio剪辑都是AAC编码的。 我已经尝试通过Objective-C API([AVAudioSession sharedInstance])和C API设置AVAudioSession属性,但没有一个选项似乎工作。