#android #button #audio
#Android #кнопка #Аудио
Вопрос:
Я очень новичок и пытаюсь создать свои самые первые приложения с кнопками, которые воспроизводят звуки при нажатии… Я думаю, дека.
E / MediaPlayer: должен быть установлен контроллер субтитров
E / MediaPlayer: ошибка (262,0)
Когда я нажимаю кнопку во второй раз:
E / MediaPlayer: ошибка (-38,0)
Это ошибки, которые я получаю с помощью этого простого кода:
public class MainActivity extends AppCompatActivity {protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer m1 = MediaPlayer.create(getApplicationContext(), R.raw.s1);
Button b1 = (Button) findViewById(R.id.s1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
m1.start();
}
});}
«s1.mp3» находится в папке raw, длится около 3-4 секунд, я думаю, что это не проблема…
Я не понимаю, что я делаю не так — всему этому меня научил онлайн-учебник, там был похожий код…
Пожалуйста, помогите мне, как я уже сказал, я начинающий разработчик, поэтому мне нужна помощь…
Заранее благодарю вас!
Обновить:
public class MainActivity extends AppCompatActivity {
MediaPlayer m1;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m1 = MediaPlayer.create(MainActivity.this, R.raw.s1);
Button b1 = (Button) findViewById(R.id.s1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
m1.start();
}
});}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.antiriad7.zviadi.MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_height="0dp"
android:layout_width="fill_parent"
android:layout_weight="25"
android:id="@ id/l1">
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S1"
android:id="@ id/s1"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="34"
android:text="S2"
android:id="@ id/s2"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S3"
android:id="@ id/s3"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="25"
android:layout_below="@ id/l1"
android:id="@ id/l2">
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S4"
android:id="@ id/s4"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="34"
android:text="S5"
android:id="@ id/s5"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S6"
android:id="@ id/s6"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_below="@ id/l2"
android:layout_weight="25"
android:id="@ id/l3">
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S7"
android:id="@ id/s7"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="34"
android:text="S8"
android:id="@ id/s8"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S9"
android:id="@ id/s9"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_below="@ id/l3"
android:layout_weight="25"
android:id="@ id/l4">
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S10"
android:id="@ id/s10"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="34"
android:text="S11"
android:id="@ id/s11"
android:layout_height="match_parent" />
<Button
android:layout_width="0dp"
android:layout_weight="33"
android:text="S12"
android:id="@ id/s12"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
Комментарии:
1. ваша mp3-песня воспроизводится или нет при нажатии кнопки??
2. Нет, он не воспроизводится…
3. смотрите мой обновленный ответ
Ответ №1:
Когда медиаплеер начинает проигрывать музыку, он проверяет, есть ли SubtitleController, и показывает это сообщение, если оно не установлено. Похоже, его не волнует, является ли источником, который вы хотите воспроизвести, музыка или видео. Не уверен, почему он это сделал.
Не заботьтесь об этом «исключении».
Чтобы удалить это исключение, выполните этот шаг :
- Щелкните правой кнопкой мыши на дорожке (файл raw folder .mp3).
- затем выберите свойство
- выберите подробности
- затем вставьте текст песни (название) в субтитры
- Выполнено
Обновлено
public class MainActivity extends AppCompatActivity {
Mediaplayer m1;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m1 = MediaPlayer.create(MainActivity.this, R.raw.s1);
Button b1 = (Button) findViewById(R.id.s1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
m1.start();
}
});}
Я надеюсь, что это сработает для вас
Комментарии:
1. Я не могу редактировать субтитры… Может быть, мне следует что-то сделать из самой Android studio? Это исправит и заставит кнопку воспроизводить звук?
2. Не заботьтесь об этом исключении. вы обновили свой код в соответствии с моим ответом??
3. И объявите вашу переменную mediaplayer глобально
4. Я обновил, но то же самое. Что вы имеете в виду под «глобально»?
5. просто скопируйте и вставьте мой обновленный ответ в свой mainactivity и добавьте одну песню в raw folder….it является ли работа определенно
Ответ №2:
Сохраните свой XML таким, какой он есть, а затем измените свой код MainActivity именно на этот:
public class MainActivity extends AppCompatActivity {
MediaPlayer m1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m1 = MediaPlayer.create(MainActivity.this, R.raw.s1);
Button b1 = (Button) findViewById(R.id.s1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
m1.start();
}
});
}
}
Затем выполните сборку —> Очистите проект в Android Studio, а затем запустите его. Работает ли это? В чем ошибка?
Комментарии:
1. Я получаю E / MediaPlayer: ошибка (262,0) при первом нажатии. Само приложение на телефоне не вылетает, но не воспроизводит звук.