我有一个audio播放器播放从核心date检索的audio。 播放和暂停工作正常。 我试图实现一个“跳转30秒”button,并寻求任何指针,我将如何去做。 代码为我的“播放/暂停”button @IBAction func playPressed(sender: AnyObject) { let play = UIImage(named: "play") let pause = UIImage(named: "pause") if audioPlayer.playing { pauseAudioPlayer() audioPlayer.playing ? "\(playButton.setImage( pause, forState: UIControlState.Normal))" : "\(playButton.setImage(play , forState: UIControlState.Normal))" }else{ playAudio() audioPlayer.playing ? "\(playButton.setImage( pause, forState: UIControlState.Normal))" : "\(playButton.setImage(play , forState: UIControlState.Normal))" } }
我试图将一个MPMediaItem转换为NSData对象,所以我可以用AVAudioPlayer播放它。 下面的答案是张贴了一个类似的问题,回到了如何做到这一点: MPMediaItems原始歌曲数据 当然你可以访问MPMediaItem的数据。 这一次不是很清楚,但是很有效。 就是这样: 从MPMediaItemPropertyAssetURL属性中获取媒体项目的URL使用此URL初始化AVURLAsset使用此资源初始化AVAssetReader从AVURLAsset获取您想要读取的AVAssetTrack使用此轨道创buildAVAssetReaderTrackOutput将此输出添加到之前创build的AVAssetReader中并将-startReading提取所有数据与AVAssetReaderTrackOutput的-copyNextSampleBuffer利润! 用'copyNextSampleBuffer'获取数据后,我现在有一个CMSampleBufferRef对象。 我如何从这里继续? 谢谢,吉利
我有一个钢琴应用程序。 这工作正常,有一点点错误。 如果我在同一时间快速播放几个键,则声音会消失几秒钟,并在控制台中收到以下消息 AudioQueueStart发布消息,以杀死mediaserverd 这是相关的代码: -(IBAction)playNoteFromKeyTouch:(id) sender{ [NSThread detachNewThreadSelector:@selector(playNote:) toTarget:self withObject:[NSString stringWithFormat:@"Piano.mf.%@",[sender currentTitle]]]; } -(void)playNote:(NSString *) note{ NSError *err; NSString *path = [[NSBundle mainBundle] pathForResource:note ofType:@"aiff"]; AVAudioPlayer *p = [[AVAudioPlayer alloc ] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&err]; p.delegate = self; if (err) { NSLog(@"%@", err); }else{ [p prepareToPlay]; [p play]; } } – (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag { […]
我已经在iOS 10.2.1上用Mac OS Sierra 10.12.3上的XCode Version 8.2.1(8C1002)实现了一个audio播放器 当歌曲开始播放时,音量在几秒钟后下降很多。 有没有人经历过这样的效果? do { myAudioPlayer = try AVAudioPlayer(contentsOf: url!) myAudioPlayer.prepareToPlay() myAudioPlayer.volume = 1.0 } catch { print(error) }
我在我的应用程序中使用AVAudioPlayer 。 当我select一首正在播放的歌曲时,但是我的问题是,当设备被locking时,它不会播放。
为了这个问题的目的,想象我的应用程序每10秒播放一个audio剪辑。 此audio使用AVAudioPlayer播放/与设备上的iPod音乐播放器(使用低频)混合。 当应用程序被发送到后台,我安排UILocalNotification对象与audio文件引用(和没有文字),所以声音继续播放以10秒为间隔。 令我困扰的是,在iOS 6上作为通知的一部分播放的audio剪辑的音量似乎是我在应用程序中播放audio时的两倍(我将音量设置为1.0f,文档说是最大)。 所以,每隔10秒钟,应用程序就会播放声音,当您发送到背景时,与应用程序中的内容相比,现在声音非常响亮。 相关片段…应用程序启动,这里是我如何设置AVAudioSession,以启用ducking: [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; UInt32 doChangeDefaultRoute = 1; AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute); OSStatus propertySetError = 0; UInt32 allowMixing = true; propertySetError = AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers,sizeof (allowMixing),&allowMixing); …我如何创build我的球员: – (AVAudioPlayer *)playerWithCAFFileNamed:(NSString *)fname { NSURL *u = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:fname ofType:@"caf"]]; NSData *d = [NSData dataWithContentsOfURL:u]; AVAudioPlayer *p = […]
我广告使用下面的代码从网上下载一个AMR文件和AVAudioPlayer播放,但所有的时候我得到的unrecongnize selector sent to instance错误。 这是开始下载和播放的方法: – (IBAction)DisplayAudioPlayView:(id)sender { [self InitializePlayer]; } -(void) InitializePlayer { // Get the file path to the doa audio to play. NSString *filePath = [[ServerInteraction instance] getAudio:audioData.ID]; // Convert the file path to a URL. NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: filePath]; //Initialize the AVAudioPlayer. audioPlayer= [AVPlayer playerWithURL:fileURL] ; audioPlayer.delegate= […]
我正在尝试为AVAudioPlayer同时播放几个声音文件。 我读了一个解释如何做的线程@ AVAudioPlayer Help:同时播放多个声音,一次停止所有声音,并解决自动引用计数问题 。 这似乎是一个奇怪的问题,当我试图一次只播放一个文件(当self.options.on是ON),它的工作原理,但是当我尝试创build多个实例(else语句),并播放他们什么都没有播放。 我检查,看是否输出文件的URL是正确的,那是什么原因,它不工作? 谢谢! – (void)playTapped:(id)sender { if (!recorder.recording) { if(self.options.on) { AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory:AVAudioSessionCategoryPlayback error:nil]; NSArray *pathComponents = [NSArray arrayWithObjects: [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject], [NSString stringWithFormat:@"sound%i.m4a",last], nil]; NSURL *outputFileURL = [NSURL fileURLWithPathComponents:pathComponents]; player = [[AVAudioPlayer alloc] initWithContentsOfURL:outputFileURL error:nil]; NSLog(@"%@",player.url); [player setDelegate:self]; [player play]; } else { […]
我收到以下错误: [0x19bf89310] AVAudioSession.mm:646: – [AVAudioSession setActive:withOptions:error:]:取消激活正在运行I / O的audio会话。 在停用audio会话之前,应该停止或暂停所有I / O。 我已阅读这篇文章: iOS8 AVAudioSession setActive错误 然而,那里的解决scheme并没有解决我的问题。 这是: 小应用(游戏) audio背景音乐在AudioHelper.swift中处理 用SKActino.playSoundFile播放额外的“blip”声音 再生产 开始游戏(背景音乐开始播放) closures游戏(音乐停止) 重新开始游戏(音乐重新开始) 出现以上错误 SKAction.playSoundFile不总是工作了(有些做,有些则不) 我的audio处理代码(又名AudioHelper.swift) class AudioHelper: NSObject, AVAudioPlayerDelegate { var player : AVAudioPlayer? class var defaultHelper : AudioHelper { struct Static { static let instance : AudioHelper = AudioHelper() } return Static.instance […]
我试图回放和MP3文件我从我的应用程序从我的应用程序执行以下检索: – (IBAction)play:(UIButton *)sender { dispatch_queue_t downloadQueue = dispatch_queue_create("audio data downloader", NULL); dispatch_async(downloadQueue, ^{ NSURL *audioURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@/%@.mp3", FONYK_FILES_URL, [self.voicenote valueForKeyPath:@"Fonyker.fonykid"], [self.voicenote valueForKeyPath:@"Voicenote.vnid"]]]; NSData *audioData = [NSData dataWithContentsOfURL:audioURL]; dispatch_async(dispatch_get_main_queue(), ^{ NSError *error = nil; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:audioData error:&error]; NSLog(@"%@", error); audioPlayer.delegate = self; [audioPlayer play]; }); }); } 播放失败,意味着没有声音发出,我得到这个输出时,一步一步地debugging我的应用程序: Catchpoint […]