Что означает «Невозможно соответствовать желаемому поведению подкачки» при использовании функции android.media.MediaPlayJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Что означает «Невозможно соответствовать желаемому поведению подкачки» при использовании функции android.media.MediaPlay

Сообщение Anonymous »

Я использую AIDE для Android и имею 2 Java-файла (один — MainActivity.java, а другой — M4APlayer.Java).
Во время onCreate() call, у меня есть прослушиватель изменения текста, прикрепленный к элементу управления EditText с именем сахар, поэтому при изменении текста внутри этого элемента управления он вызывает функцию onTextChanged().
Внутри onTextChanged(), у меня есть 4 различных сценария (где уровень сахара в крови человека может быть низким и падающим, низким и повышающимся, высоким и падающим или высоким и повышающимся). В зависимости от того, какое число (от 1 до 4) находится внутри поля сахара, моя цель — передать строку функции M4APlayer.play() в M4APlayer.java, определяющей, какой звук воспроизводить (в зависимости от того, какой в поле сахара вводится число от 1 до 4).
Все работало нормально, пока я не добавил функцию MediaPlayer.create(). Теперь мое приложение вылетает с ошибкой

Невозможно обеспечить желаемое поведение при переключении

Что это может означать? Вот мой код MainActivity.java:

Код: Выделить всё

package com.UnitedToolsForSouls.SoundAlert;

import android.app.*;
import android.os.*;
import java.util.*;
import android.widget.*;
import android.text.*;
import android.content.*;

public class MainActivity extends Activity {
private static EditText sugar;
private static TextView result;
private static TextView scenario1;
private static TextView scenario2;
private static TextView scenario3;
private static TextView scenario4;

public Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

context = this;

sugar = (EditText) findViewById(R.id.sugar);
result = (TextView) findViewById(R.id.result);

scenario1 = (EditText) findViewById(R.id.scenario1);
scenario2 = (EditText) findViewById(R.id.scenario2);
scenario3 = (EditText) findViewById(R.id.scenario3);
scenario4 = (EditText) findViewById(R.id.scenario4);

sugar.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Called as text is being changed
String sug = sugar.getText().toString();

String s1 = scenario1.getText().toString();
String s2 = scenario2.getText().toString();
String s3 = scenario3.getText().toString();
String s4 = scenario4.getText().toString();

result.setText("???");

if (sug.length() == 1) {
if (sug.charAt(0) == '1') {
result.setText(s1);
}
if (sug.charAt(0) == '2') {
result.setText(s2);
}
if (sug.charAt(0) == '3') {
result.setText(s3);
}
if (sug.charAt(0) == '4') {
result.setText(s4);
}
M4APlayer.play(context, result.getText().toString());
}
}

@Override
public void beforeTextChanged(CharSequence p1, int p2, int p3, int p4) {
// TODO: Implement this method
}

@Override
public void afterTextChanged(Editable p1) {
// TODO: Implement this method
}
});
}
}
Вот мой код для M4APlayer:

Код: Выделить всё

package com.UnitedToolsForSouls.SoundAlert;

import android.content.Context;
import android.media.MediaPlayer;

public class M4APlayer {
public static void play(Context context, String file) {
/*PROBLEM*/
MediaPlayer mp = MediaPlayer.create(context, R.id.scenario1);
//mp.start();
//Stop the fplayer.
//Loop and play the file when nothing is playing.
}
}
Кроме того, почему mediaplayer.create () воспринимать целочисленный аргумент в качестве второго аргумента, а не строки (для того, каким бы нимет воспроизводился имя файла)?

Подробнее здесь: https://stackoverflow.com/questions/793 ... the-androi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»