Pull to refresh

Comments 19

Директор завода по сжиганию фотографов радуется этом исходникам!
во, как раз искал подобный материал, все руки чешутся покрутить камеру на андроиде. Где можно найти что-то подобное под винмобайл или айфон?
> искал подобный материал, все руки чешутся покрутить камеру на андроиде
Как-то вы очень лениво искали, в стандартных сэмплах есть практически тоже самое, впрочем, автор статьи в конце на один из них ссылку и приложил.
Ежели чего, там ещё много всякого на разные другие темы есть: developer.android.com/resources/samples/
Скажите, а на сколько сложно обстоят дела с видеозаписью?
Меня очень неустраивает битрейт звука на HTC Desire.
Вот всё пытаюсь сесть и навоять простенькую камеру, но с хорошим звуком.
судя по всему, дело обстоит довольно просто.
предлагается использовать класс MediaRecorder, который имеет множество методов для задания параметров видео и аудио.
setAudioSource()
setVideoSource()
setOutputFormat()
setVideoEncoder()
setAudioEncoder()
setVideoEncodingBitRate()
setAudioEncodingBitRate()
setAudioSamplingRate()
setAudioChannels()
setVideoFrameRate()
setVideoSize()

на коленке получилось по быстрому модифицировать эту программу и даже какое-то видео записалось.
на выходных попробую сделать полноценный пример.
А можно ли каким-то образом отлаживать в эмуляторе, «эмулируя» камеру телефона при помощи камеры компа?
Насколько я знаю, в эмуляторе есть какой-то имитатор работы видеокамеры. Сам не пользовался.
встроенный имитатор просто показывает вместо превью поле с квадратиками, а вместо снимка дает картинку с зеленым роботом. т.е. отлаживать на эмуляторе, в принципе, можно.
Сохранение картинки в файл лучше обрамить в AsyncTask, что бы не подвешивать основной поток программы.
Извиняюсь, в первый раз рука сорвалась… )
Вот исходник «обрамленной» версии, что бы не быть голословным:
@Override
    public void onPictureTaken(byte[] paramArrayOfByte, Camera paramCamera)
    {
	
		new SaveInBackground().execute(paramArrayOfByte);
		camera.startPreview();
    }

	class SaveInBackground extends AsyncTask<byte[], String, String> {
		@Override
		protected String doInBackground(byte[]... arrayOfByte) {
			try {
				File saveDir = new File("/sdcard/CameraExample/");

				if (!saveDir.exists())
				{
					saveDir.mkdirs();
				}

				FileOutputStream os = 
           new FileOutputStream(String.format("/sdcard/CameraExample/%d.jpg", System.currentTimeMillis()));
				os.write(arrayOfByte[0]);
				os.close();
        } catch (Exception e) {
			//
        }
			return(null);
		}
	}
Кстати перезапуск активити при смене ориентации экрана не является обязательным. Можно поставить флаг на активити и будет вместо это вызываться один метод. Пишу на телефоне, посмотреть название флага сложно.
Умные люди, подскажите, пожалуйста, можно ли вытащить RAW (Camera.PictureCallback raw) перед сжатием в jpg? По ходу дела эта функция не поддерживается (хотя в документации об этом ни слова), т.к. хип приложения лимитирован (16мб вроде) и рав дата просто не влезает. Может в NDK нужно глянуть?
Есть огромное желание разобраться — почему снимки такие размытые получаются. Сравниваю Мотоандроиды с Motorola Zn5
скажите, а если вызвать метод startPreview() без предварительного setPreviewDisplay() (то есть без окна предпросмотра), то все отработает корректно, за исключением, что не будет окна предпросмотра? я спрашиваю к тому, что хочу сделать приложение «фонарик». то есть через камеру иметь доступ к светодиоду. и не хотелось бы во время вкл/выкл фонарика наблюдать окно предпросмотра камеры
Вы разобрались с этим вопросом? Без создания предпросмотра камера отработает?
Sign up to leave a comment.

Articles