我有一个应用程序,可以跟踪用户在iPod应用程序中执行的所有操作.为此,我向NSNotificationCenter添加了一些观察者,如MPMusicPlayerControllerNowPlayingItemDidChangeNotification.但我的问题是,当我的应用程序在前台时,我只收到这些通知,如果它在后台,系统将通知添加到队列,然后下次我的应用程序变为活动状态时,它会将它传递给我.我对这个队列没兴趣,因为我想收到实时通知.
即使我的应用程序处于挂起状态,有没有办法让我收到这些通知?我想每次运行NowPlayingItemDidChange通知时只运行3行代码.
这是我添加观察者的地方.
MPMusicPlayerController *iPodMediaPlayer = [MPMusicPlayerController iPodMusicPlayer];
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver: self selector: @selector(handle_NowPlayingItemChanged:) name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object:iPodMediaPlayer];
[iPodMediaPlayer beginGeneratingPlaybackNotifications];
Run Code Online (Sandbox Code Playgroud)
此外,如果我向观察者而不是iPodMediaPlayer添加另一种对象,观察者将不会调用该方法.
非常感谢,
阿巴拉
如何获取iPod轨道的内容(原始/样本数据)?我见过像"铃声设计师"和iMovie这样的应用程序可以做到这一点,但我不知道他们使用哪种API或他们做了什么.我可以想象iMovie使用私有api,但"铃声设计器"是第三方应用程序,所以必须有公共api功能.
我看了一下Apple的AddMusic示例代码,但这不是我想要的.我正试图找到一种方法来启动/停止在iPod应用程序中播放音乐,而不是控制应用程序沙箱中包含的内容.
像这样......
____________
| |
| |< || >| | skip back, play/pause, skip forward
| |
| XXXXXXXX | album art
| XXXXXXXX |
| XXXXXXXX |
| XXXXXXXX |
| |
|____________|
Run Code Online (Sandbox Code Playgroud)
当然应用程序比这更复杂,但是现在,我想专注于假设直接控制.
奖励指向任何获取参考而不作弊的人.
- 图稿加载错误转移到一个新问题.
- 文本到语音的实现转移到了一个新问题.
- 歌曲开始后,进度条的填充率为100%.此代码有效:
// your must register for notifications to use them
- (void)handleNowPlayingItemChanged:(id)notification {
…
// this is what I forgot to do
NSNumber *duration = [item valueForProperty:MPMediaItemPropertyPlaybackDuration];
float totalTime …Run Code Online (Sandbox Code Playgroud) 我对iOS编程完全不熟悉(我更像是一个Android人......)并且必须构建一个处理音频DSP的应用程序.(我知道这不是接近iOS开发的最简单方法;))
该应用程序需要能够接受以下输入:
1-内置麦克风2- iPod库
然后可以将滤波器应用于输入声音,并将结果输出到:
1-扬声器2-录制到文件
我的问题如下:为了能够将多个过滤器应用于输入,或者通过处理具有不同渲染回调的样本可以应用这些不同的效果,是否必须使用AUGraph?
如果我使用AUGraph,我需要:每个输入1个音频单元,输出1个音频单元和每个效果/滤波器1个音频输入吗?
最后,如果我不这样做,我可能只有1个音频单元并重新配置它以选择源/目的地?
非常感谢您的回答!我迷失了这些东西......
我fetch在我的react-native应用程序中使用API调用.这在开发版本中工作正常,但在发布版本中减慢到几秒钟.
问题不在于API; 请求大约需要100~300毫秒才能完成(根据ngrok检查员的说法).对于开发和发布版本都是如此.
当我记录之前和之后的时间时fetch,有一个我无法解释的延迟.
当我在发布版本中进行API调用时,最简单的用例(即使在新的react-native@0.56应用程序中)也会减慢为爬行速度.
console.log('start request');
const response = await fetch('http://...');
console.log('request completed');
Run Code Online (Sandbox Code Playgroud)
这些日志之间的时间在几百毫秒到六七秒之间变化(非异步/等待方法遭受同样的迟缓).
响应始终是application/json,我使用该response.json()函数解压缩它.但即使有这样的反应{"test": 123},它仍然很慢.
我可以想象在反应原生升级过程中做错了什么,但我不明白为什么即使在一个完全样板的新反应原生应用程序中也会发生这种情况.
我们所有的测试表明iPod(第六代)遇到了这个问题,而不是最近的iPhone.有没有其他人遇到过(并希望能够修复)这个?
我想控制来自MPMusicPlayerController的音频(即从iPod库播放).例如,我想将EQ应用于它或做DSP,混响,那种事情.
这可能吗?有没有我可以抓住的音频会话?或者,是否有某种方法可以使用AVAudioPlayer播放iPod库中的文件?
我的应用程序在iPhone 3G上运行缓慢但在iPhone 3G S上足够快.
有没有办法限制应用程序仅适用于iPhone 3G S和更快的设备?我想避免不好的评论,因为3G甚至2G用户下载它然后抱怨它太慢了.
我试图从iPod库中的MP3中提取原始PCM样本,以便我可以播放歌曲并操纵音调,速度和应用声音效果(如滤镜).我已经走了AVPlayer和AVAudioPlayer的路线,它们都不能完全控制播放.
以下代码就我所知.我现在处于一个不知道如何处理我的while循环中的CMSampleBufferRef的地步,因为我不知道使用哪个框架来播放音频并应用这些效果.
知道什么是实现这一目标的最佳方法?我已经查看了使用AVAssetWriter转换文件的情况,但这不会为我删除它,因为该过程太耗时.当然我可以将PCM样本读入内存进行播放,而不必先将它们写入磁盘?
注意:我知道下面的代码引用了项目中的一个mp3,但是我知道这种方法与我从MPMediaPropertyAssetURL中提取NSURL的方法相同
-(IBAction)loadTrack:(id)sender {
NSString *songPath = [[NSBundle mainBundle] pathForResource:@"Smooth_Sub Focus_192" ofType:@"mp3"];
NSURL *assetURL = [[NSURL alloc] initFileURLWithPath:songPath];
AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL:assetURL options:nil];
NSError *assetError = nil;
AVAssetReader *assetReader = [[AVAssetReader assetReaderWithAsset:songAsset
error:&assetError] retain];
if (assetError) {
NSLog (@"Error: %@", assetError);
return;
}
AVAssetReaderOutput *assetReaderOutput = [[AVAssetReaderAudioMixOutput assetReaderAudioMixOutputWithAudioTracks:songAsset.tracks
audioSettings: nil] retain];
if (![assetReader canAddOutput:assetReaderOutput]) {
NSLog (@"Incompatible Asser Reader Output");
return;
}
[assetReader addOutput: assetReaderOutput];
[assetReader startReading];
CMSampleBufferRef nextBuffer;
while (nextBuffer = [assetReaderOutput copyNextSampleBuffer]) {
/* What …Run Code Online (Sandbox Code Playgroud) 您好我在framworks下面使用,
#import <MediaPlayer/MediaPlayer.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>
Run Code Online (Sandbox Code Playgroud)
在其中一个按钮事件中,我已经实现了以下代码来打开库.
MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
mediaPicker.delegate = self;
mediaPicker.allowsPickingMultipleItems = YES; // this is the default
[self presentModalViewController:mediaPicker animated:YES];
[mediaPicker release];
Run Code Online (Sandbox Code Playgroud)
并且在MPMediaPickerController的委托方法中实现了如下代码
#pragma mark MPMediaPickerController delegate methods
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
// We need to dismiss the picker
[self dismissModalViewControllerAnimated:YES];
// Assign the selected item(s) to the music player and start playback.
counterIpod = [mediaItemCollection.items count];
totalcollection = counterIpod;
if (totalcollection > 10) {
NSString *str = [NSString …Run Code Online (Sandbox Code Playgroud) 我还有一个与BASS有关的问题.我已经发布了这个问题我们如何在iPhone中控制音乐的低音,但是没有得到你应该得到的那么多人的关注.但现在我已经做了一些搜索并阅读了Core AUDIO.我有一个示例代码,我想与你分享这里的人是下载iPhoneMixerEqGraphTest的链接.在这段代码中看一下我所看到的是开发人员使用Apple在iPod中给出的预置均衡器.让我们看一些代码片段:----
// iPodEQ unit
CAComponentDescription eq_desc(kAudioUnitType_Effect, kAudioUnitSubType_AUiPodEQ, kAudioUnitManufacturer_Apple);
Run Code Online (Sandbox Code Playgroud)
kAudioUnitSubType_AUiPodEQ的作用是从iPod的均衡器中获取预设值并在Xcode中返回我们可以在PickerView/TableView中使用的数组,并且可以设置任何类别,如贝斯,摇滚,舞蹈等.这对我来说无能为力,因为它只返回名称均衡器类型,如低音,摇滚,舞蹈等,因为我只想实现低音,并希望在UISLider上实现它.
要在滑块上实现低音,我需要值,以便我可以设置最小值和最大值,以便可以更改移动滑块上的低音.
完成所有这些后,我开始阅读Core Audio的音频单元框架的类,并得到了这个
之后我开始寻找低音控制并得到了这个

所以现在我需要实现这个kAudioUnitSubType_LowShelfFilter.但现在我不知道如何在我的代码中实现这个枚举,以便我可以控制低音作为书面文档.即便是Apple也没有写过我们如何使用它.kAudioUnitSubType_AUiPodEQ此类别返回一个数组,但kAudioUnitSubType_LowShelfFilter类没有返回任何数组.在使用kAudioUnitSubType_AUiPodEQ此类别时,我们可以使用数组中的均衡器类型,但我们如何使用此类别kAudioUnitSubType_LowShelfFilter.任何人都能以任何方式帮助我吗?这将是非常值得赞赏的.
谢谢.
ipod ×10
iphone ×8
ios ×4
objective-c ×3
core-audio ×2
media-player ×2
app-store ×1
audio ×1
audiounit ×1
background ×1
bass ×1
fetch ×1
ios4 ×1
itunes-sdk ×1
mp3 ×1
pcm ×1
react-native ×1