Форум программистов, компьютерный форум, киберфорум
Наши страницы

Core Audio - Программирование iOS

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS Первый кадр видео http://www.cyberforum.ru/ios-dev/thread862709.html
Здравствуйте! Нужен в программе для iPhone взять первый кадр из видео и передать его в imageview для tableview Перерыл интернет, нет примеров?:( Кто знает? Всех благ Добавлено через 2 часа...
Программирование iOS box2d создания уровней Привет. У меня вот есть .plist файл в котором хранится например 300 точек. Ето мой путь в уровне. Диапазон значений например от (0,0) до (10000,320) px. Я создаю 1 статическое тело (это будет путь)... http://www.cyberforum.ru/ios-dev/thread862042.html
Pascal в xCode, возможно ли? Программирование iOS
Добрый день, я пишу программы на паскале, но решил написать на своем маке легенькую программу, обычные пост запросы.. но С++ или какой там язык вообще не знаю.. макимум могу сделать предупредительное...
Программирование iOS Я наверное маньяк. А можно ли. ?)
Можно ли писать программы на ассамблере под iOS ? Возможно уже есть ассамблер который ставится на платформу iOS ?
Программирование iOS анимация View http://www.cyberforum.ru/ios-dev/thread860136.html
Здравствуйте! Использую этот метод для анимации(передвижения) view ; У этого view установлена тень self.childView.layer.shadowOffset=CGSizeMake(-1, 0); self.childView.layer.shadowOpacity=.8;...
Программирование iOS AdBannerView на все Views Хочу вставить баннер на большинство views. В основном используются TableView. Решил для баннера использовать TableHeader у TableView. Apple рекомендует в таких случаях не создавать баннеры для... подробнее

Показать сообщение отдельно
Death
4 / 4 / 1
Регистрация: 18.10.2009
Сообщений: 44
13.05.2013, 00:52  [ТС]
Извените
Проблема такова. Пытаюсь создать граф. Mixer -> NBandEQ -> Output.

В Mixer юнит через свойства привязываю колбек для получение данных. т,е источник данных у меня это Mixer.

Если без NBandEQ звук воспроизводиться нормально, если сразу подать на Output. Т,е граф получается такой Mixer -> Output.

Если добавить вершину NBandEQ, то приложение пишит что неизвестный формат и ничего не происходит, тоже самое и остальными и эфектами. Ошибок при создание и инциализирование вершины нету.

Формат я указываю. Формат PCM у меня. Иначе во первых не было бы звука. Да вообще чтобы производить эффекты над звуком, должен быть звук раскодирован.

Едиственный какой эфект срабатывает, это AUiPodEQ. Как быть?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
AURenderCallbackStruct inputCallbackStruct;
inputCallbackStruct.inputProc = ipodRenderCallback;
inputCallbackStruct.inputProcRefCon = (__bridge void*)self;
 
AUGraphSetNodeInputCallback (
processingGraph,
mixerNode,
0,
&inputCallbackStruct
);
 
AudioUnitSetProperty (
mixerUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input,
mainBus,
&SInt16StereoStreamFormat,
sizeof (SInt16StereoStreamFormat)
);
Связать kAudioUnitSubType_AudioFilePlayer ->kAudioUnitSubType_NBandEQ -> kAudioUnitSubType_RemoteIO - это нормально получается. Но вот если нужно в графе есть микшер, а затем после него делать вершины с эфектами, то уже не работает. Как быть? Может кто-то пробывал делать какие-то эфекты, которые поступали из микреша?

Вот код.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
-(void) configureAndInitializeAudioProcessingGraph {
    
    
        OSStatus result = noErr;
        result = NewAUGraph (&processingGraph);
        
        if (noErr != result) {[self printErrorMessage: @"NewAUGraph" withStatus: result]; return;}
        
        
        
        AudioComponentDescription iOUnitDescription;
        iOUnitDescription.componentType          = kAudioUnitType_Output;
        iOUnitDescription.componentSubType       = kAudioUnitSubType_RemoteIO;
        iOUnitDescription.componentManufacturer  = kAudioUnitManufacturer_Apple;
        iOUnitDescription.componentFlags         = 0;
        iOUnitDescription.componentFlagsMask     = 0;
        
        AudioComponentDescription MixerUnitDescription;
        MixerUnitDescription.componentType          = kAudioUnitType_Mixer;
        MixerUnitDescription.componentSubType       = kAudioUnitSubType_MultiChannelMixer;
        MixerUnitDescription.componentManufacturer  = kAudioUnitManufacturer_Apple;
        MixerUnitDescription.componentFlags         = 0;
        MixerUnitDescription.componentFlagsMask     = 0;
    
 
        AudioComponentDescription EQDescription;
        EQDescription.componentType = kAudioUnitType_Effect;
        EQDescription.componentSubType = kAudioUnitSubType_NBandEQ;
        EQDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
        EQDescription.componentFlags = 0;
        EQDescription.componentFlagsMask = 0;
    
 
        result = AUGraphAddNode ( processingGraph,
                                 &iOUnitDescription,
                                 &iONode
                                 );
    
        if (noErr != result) {[self printErrorMessage: @"AUGraphNewNode failed for I/O unit" withStatus: result]; return;}
        
        result =  AUGraphAddNode (
                                  processingGraph,
                                  &MixerUnitDescription,
                                  &mixerNode
                                  );
    
    
    if (noErr != result) {[self printErrorMessage: @"AUGraphNewNode failed for Mixer unit" withStatus: result]; return;}
    
    
    
        result = AUGraphAddNode
                                (
                                 processingGraph,
                                 &EQDescription,
                                 &eqNode
                                 );
    
    
    
    result = AUGraphConnectNodeInput (
                                      processingGraph,
                                      mixerNode,
                                      0,
                                      eqNode,
                                      0
                                      );
    
    
    if (noErr != result) {[self printErrorMessage: @"AUGraphConnectNodeInput conv to eq" withStatus: result]; return;}
    
    result = AUGraphConnectNodeInput (
                                      processingGraph,
                                      eqNode,
                                      0,
                                      iONode,
                                      0
                                      );
    
    
        result = AUGraphOpen (processingGraph);
    
    
        if (noErr != result) {[self printErrorMessage: @"AUGraphOpen" withStatus: result]; return;}
        
        result = AUGraphNodeInfo (
                                    processingGraph,
                                    mixerNode,
                                    NULL,
                                    &mixerUnit
                                    );
 
    
        if (noErr != result) {[self printErrorMessage: @"AUGraphNodeInfo" withStatus: result]; return;}
    
        
        result = AUGraphNodeInfo (
                                    processingGraph,
                                    iONode,
                                    NULL,
                                    &ioUnit
                                   );
    
    
        result =    AUGraphNodeInfo  (
                                 processingGraph,
                                 eqNode,
                                 NULL,
                                 &eqUnit
                                 );
 
    
        if (noErr != result) {[self printErrorMessage: @"AUGraphConnectNodeInput eq to ionode" withStatus: result]; return;}
 
    
        [self setPropertyMixerUnit];
    
        result = AUGraphInitialize (processingGraph);
    
        if (noErr != result) {[self printErrorMessage: @"error" withStatus: result]; return;}   
}
 
-(void)setPropertyMixerUnit{
    
    UInt32 maximumFramesPerSlice = 4096;
    
    AudioUnitSetProperty (
                                   mixerUnit,
                                   kAudioUnitProperty_MaximumFramesPerSlice,
                                   kAudioUnitScope_Global,
                                   0,
                                   &maximumFramesPerSlice,
                                   sizeof (maximumFramesPerSlice)
                                   );
    
    AURenderCallbackStruct inputCallbackStruct;
    inputCallbackStruct.inputProc        = ipodRenderCallback;
    inputCallbackStruct.inputProcRefCon  = (__bridge void*)self;
    
    AUGraphSetNodeInputCallback (
                                          processingGraph,
                                          mixerNode,
                                          0,
                                          &inputCallbackStruct
                                          );
    
    AudioUnitSetProperty         (
                                   mixerUnit,
                                   kAudioUnitProperty_StreamFormat,
                                   kAudioUnitScope_Input,
                                   mainBus,
                                   &SInt16StereoStreamFormat,
                                   sizeof (SInt16StereoStreamFormat)
                                   );
}
Добавлено через 56 минут
Если конкретно что за ошибка, то AUGraphInitialize error: -10868
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru