[英]Android MediaPlayer: error (1, -2147483648) when referencing from string variable
我正在使用jsoup抓取一些音頻文件源URL,並將它們存儲在字符串中。 如果該字符串以后不為null,則將使用onClick偵聽器創建一個按鈕來播放該文件。 此方法有效,但在不同頁面上進行測試時已損壞。 如果將setDatasource直接設置為將被抓取的URL,則它可以工作,因此不是解碼器問題。 這是發生問題的地方。
if (play1 != null) {
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.buttonPanel);
final Button btn = new Button(MainActivity.this);
btn.setText("Play");
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
mp.reset();
mp.setDataSource(play1);
mp.prepareAsync();
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
try{
linearLayout.addView(
btn,
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT)
);
} catch (NullPointerException e) {
e.printStackTrace();
}
}
如果您想重現問題,我已經包含了重現所需的項目主要功能。
這是與key變量一起使用的代碼示例,此處重點是dataSource String。
這是一個完全相同的代碼示例,唯一的變化是對dataSource String的修改,但此代碼不起作用。
如果要運行此代碼進行檢查,則需要導入Jsoup庫並添加我的checker類 。
更換
mp.setDataSource(play1);
創建人:
mp.setDataSource(play1.replaceAll(“”,“%20”)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.