0

我想从用户的音乐库中获取音乐以进行音频音乐指法。我需要的只是每首歌曲的 30 秒。我该怎么做?我不需要保存音频,只需使用它。

iOS 音频修剪

使用 iOS 修剪音频

以上2个链接是要走的路吗?

感谢您阅读并感谢任何评论。

干杯

4

1 回答 1

1

要访问用户在其设备库中已有的音乐,您将使用MPMediaItemCollection 类在 Apple Docs 中的“添加音乐”示例中也可以找到有关使用此功能的示例代码(虽然有点旧且不使用 ARC)。

我不确定您使用的是什么音频播放器,但如果您想寻找歌曲或音频文件中的特定点,您可以使用currentTimeAVAudioPlayer 类中的属性(在 Apple Docs 中注明)

为了实现这一点,你可以做一些简单的事情:

yourAudioPlayer.currentTime = 60;

这会将歌曲跳转到 1 分钟标记。在歌曲播放之前,我不能 100% 确定如何执行此操作,但我会将它放在 Play IBAction 中,在它开始播放之前:

- (IBAction) playOrPause: (id) sender {

    if (self.player.playing) {

        [self.button setTitle: @"Play" forState: UIControlStateHighlighted];
        [self.button setTitle: @"Play" forState: UIControlStateNormal];
        [self.player pause];

    } else {
        [self.button setTitle: @"Pause" forState: UIControlStateHighlighted];
        [self.button setTitle: @"Pause" forState: UIControlStateNormal];

        [self.player.currentTime = 60];  //Set the seeker here

        [self.player play];
    }

} 

要在一定时间(你说 30 秒)后停止播放,你可以使用 NSTimer,它会stop在 30 秒延迟后调用播放器。就像是:

    [NSTimer 
     scheduledTimerWithTimeInterval:30.0
     target:self.player
     selector:@selector(stop)
     userInfo:nil
     repeats:NO];

如果你把它放在你用来玩的 IBAction 中,那就应该这样做!

于 2013-08-21T02:33:43.377 回答