【发布时间】:2015-06-20 19:02:58
【问题描述】:
我目前正在制作一个音乐应用程序,您可以在其中将新乐器作为曲目添加到音乐序列中。
这是我添加新曲目后的内容:
MusicPlayerStop(_musicPlayer);
status = MusicSequenceNewTrack(sequence, &tracks[tracksCount]);
timeDiff = 32.f/_tempo;
[self setLoopDuration:currentLoopDuration forPattern:tracks[tracksCount]];
AudioComponentDescription samplerNodeDesc;
samplerNodeDesc.componentManufacturer = (OSType)kAudioUnitManufacturer_Apple;
samplerNodeDesc.componentType = (OSType)kAudioUnitType_MusicDevice;
samplerNodeDesc.componentSubType = (OSType)kAudioUnitSubType_Sampler;
samplerNodeDesc.componentFlags = 0;
samplerNodeDesc.componentFlagsMask = 0;
status = AUGraphAddNode(graph, &samplerNodeDesc, &auNodes[tracksCount]);
status = AUGraphNodeInfo(graph, auNodes[tracksCount], 0, &audioUnits[tracksCount]);
status = AUGraphConnectNodeInput(graph, auNodes[tracksCount], 0, filterNode, 0);
status = MusicTrackSetDestNode(tracks[tracksCount], auNodes[tracksCount]);
int trackId = tracksCount;
tracksCount++;
MusicPlayerStart(_musicPlayer);
return trackId;
以下根本不产生音频,请问我可以在这里做什么。
非常感谢!
【问题讨论】:
-
你能让音乐播放器正常工作吗?
-
@dave 我已将其添加到我的代码中,但仍然无法使其正常工作! :(
-
@dave 我们应该继续聊天,当我开始聊天时我会发布答案?
-
我只是不确定我是否理解您的问题。您在播放音乐序列时遇到困难吗?还是您只是需要帮助添加曲目?
-
@Dave,我无法播放新添加的曲目!我有一个导体,它是在 augraph 初始化期间添加的第一条轨道,如果我使用在初始化期间添加的示例节点作为新添加轨道的目标节点,它会播放即
MusicTrackSetDestNode(tracks[tracksCount], sampleNode)。但是我无法让MusicTrackSetDestNode(tracks[tracksCount], auNodes[tracksCount])工作。希望你现在明白了吗?
标签: ios objective-c core-audio audiounit audio-player