2010-11-21 18 views
13

Posso scattare una foto con l'iPhone a livello di programmazione chiamando [UIImagePickerController takePicture:], ma quando eseguo l'iPhone suona una forte registrazione di un clic dell'otturatore. Quando cerco su Google come disattivare il clic, consiglio di rinominare il file audio riprodotto dall'iPhone. Mi sembra che la mia app possa comportare il rifiuto da parte dell'App Store di accedere ai framework di sistema. C'è un modo programmatico per disattivare quel suono? La natura della mia app richiede che la fotocamera sia silenziosa.Come silenziare il suono dell'otturatore della fotocamera di iPhone?

+3

+1 per contrastare -1. –

+0

Vorrei fare anche questo: ho tentato di registrare un sacco di immagini fisse rapidamente (tramite AVCaptureStillImageOutput), e il suono dello scatto continuo è abbastanza sgradito a questo riguardo. –

+1

Come altri hanno affermato, questo ti mette dalla parte sbagliata della legge in diversi paesi. –

risposta

1

Non so se lo vorrebbe fare ... Il suono è lì per far sapere a qualcuno che una foto è stata scattata. L'idea è quella di garantire la privacy e la sicurezza del pubblico, in particolare i bambini," qualcosa che il Giappone ha già richiesto dei loro cittadini a scatto felice

Giappone e Corea hanno già leggi che richiedono questo suono quando si scattano foto.

http://abcnews.go.com/Technology/story?id=6750825&page=1

estratto: "i governi hanno approvato leggi simili a quello re propone "

" in Giappone e Corea, Segan ha sottolineato, in risposta alle segnalazioni di montaggio di" underskirting,

+0

L'utente può disattivare l'audio se lo desidera. Tengo il telefono in silenzio; la fotocamera non emette alcun suono. È speciale per i telefoni in Giappone. –

+0

Nota: le videocamere non emettono un suono costante, vero? Quindi chiunque potrebbe facilmente evitare di essere notato utilizzando invece la registrazione video, soprattutto perché la fotocamera dell'iPhone non mostra una luce rossa per la registrazione che di solito vediamo su videocamere dedicate. –

+0

Questa non è una risposta, ma una semplice opinione. –

1

Rinominare il file audio non utilizza una "API privata"; semplicemente non è possibile dall'interno della sandbox (supponendo che tu non abbia rotto la sandbox in qualche modo).

Tuttavia, con 4.0+, è possibile utilizzare AVCapture per scattare foto. Non sono sicuro che AVCaptureStillImageOutput riproduca un suono di scatto; una soluzione alternativa è utilizzare i frame video.

Tuttavia, mi chiedo cosa intendi per "la natura della mia app". Se si sta tentando di eseguire una sorta di elaborazione di immagini dal vivo, i fotogrammi video sono un modo molto migliore di andare in primo luogo. Se stai cercando di fotografare silenziosamente con il permesso dell'utente, allora l'utente dovrebbe essere in grado di silenziare il suono dell'otturatore comunque. Se stai cercando di scattare foto senza il permesso dell'utente, probabilmente stai violando qualche accordo con Apple.

+8

AVCaptureStillImageOutput riproduce un suono – ohho

5

presumo hai risolto da quando, ma la vostra applicazione dovrebbe riuscire sulla convalida AppStore in quanto non è conforme con l'accordo di licenza iOS Dev. Vedi sotto:

Sezione 3.3.8: Ogni forma di utente o di raccolta dati del dispositivo, o l'immagine, immagine o la cattura vocale o la registrazione (collettivamente "Registrazioni"), e qualsiasi tipo di dati, contenuti o informazioni raccolta, elaborazione, manutenzione, caricamento, sincronizzazione, archiviazione, trasmissione, condivisione, divulgazione o utilizzo da parte dell'utente, tramite o in connessione con la vostra Applicazione deve essere conforme a tutte le leggi sulla privacy applicabili e ai regolamenti e ai relativi Requisiti del programma, compreso ma non limitato a qualsiasi preavviso o requisiti di consenso. In particolare, un ragionevolmente cospicua audio, indicatore visivo o altro deve essere visualizzato all'utente come parte dell'applicazione per indicare che una registrazione sta avvenendo.

+1

Un "indicatore audio, visivo o di altro tipo ragionevolmente evidente deve essere visualizzato all'utente" - così finché l'OP fornisce un'indicazione visiva che la registrazione è in atto, il suono potrebbe essere disattivato fino a quando non è in conflitto con le leggi locali sulla privacy, nel qual caso l'app potrebbe semplicemente lasciare il suono per alcuni mercati. –

+0

È possibile interpretarlo in diversi modi. Ma in questo caso conta solo l'interpretazione di Apple che rifiuterà la tua app (come hanno fatto noi) se la fotocamera scatta foto in silenzio. –

+0

Ho 3 app in diretta nell'App Store che non sono state rifiutate a causa di questo problema, ma su tutte e 3 le app abbiamo comunicato agli utenti che la fotocamera era abilitata. –

1

Per quello che vale, sono riuscito a farlo funzionare utilizzando questo codice nel metodo snapStillImage del framework AVCapture utilizzando AVCaptureStillImageOutput. Funziona perfettamente per me su iOS 8.3 iPhone 5.Ho anche confermato che Apple non rifiuterà la vostra applicazione se si utilizza questo:

MPVolumeView* volumeView = [[MPVolumeView alloc] init]; 
//find the volumeSlider 
UISlider* volumeViewSlider = nil; 
for (UIView *view in [volumeView subviews]){ 
    if ([view.class.description isEqualToString:@"MPVolumeSlider"]){ 
     volumeViewSlider = (UISlider*)view; 
     break; 
    } 
} 

[volumeViewSlider setValue:0.0f animated:YES]; 
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside]; 
Problemi correlati