Как вы уже догадались, вы делаете неправильно несколько вещей, которые не имеют ничего общего с реальной записью видео.
Первая проблема:
Button buttonStart = (Button)findViewById(R.id.buttonstart);
Button buttonStop = (Button)findViewById(R.id.buttonstop);
Вы не можете позвонить findViewById()
здесь.findViewById()
только поиск в иерархии текущего вида деятельности.В тот момент, когда ваш класс укрепляется, отсутствует иерархия представлений.Эти члены класса всегда будут нулевыми, потому что это то, что возвращается, если представление не может быть найдено.Вы можете сохранить объявление переменной, но переместить поисковую часть в onCreate()
после вызова setContentView()
, например, так:
setContentView(R.layout.main);
buttonStart = (Button)findViewById(R.id.buttonstart);
buttonStop = (Button)findViewById(R.id.buttonstop);
То же самое относится к вашим двум вызовам setOnClickListener()
внизу,Они должны быть внутри метода.Я бы посоветовал переместить эти два блока в onCreate()
также после вызовов findViewById()
.
Редактировать: трассировка стека указывает, что ваше приложение пытается запустить действие с именем TestVideoNetActivity
.Ваша фактическая деятельность называется VideoCapture
.
Откройте AndroidManifest и найдите деталь, которая выглядит следующим образом:
<activity
android:name=".TestVideoNetActivity"
... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Изменить TestVideoNetActivity на VideoCapture .Также убедитесь, что ваши пакеты совпадают, в верхней части вашего манифеста должна быть строка package="X"
и строка package X;
в верхней части исходного файла java.Убедитесь, что они имеют одинаковое значение для X.
Редактировать 2: Ваша вторая трассировка стека показывает, что setAudioSource()
не удалось.Все, что я могу думать, это то, что у вас не установлены правильные разрешения для доступа к микрофону.Добавьте следующие строки в ваш android-манифест (это также относится и к разрешению камеры, поскольку оно вам также необходимо) :
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
Добавьте их внутри тега <manifest>
, новне тега <application>
.Например, после строки <uses-sdk>
, если она у вас есть (я думаю, она включена по умолчанию).