Android 如何通过循环播放从sqlite非同步(排队)到videoView的多个视频?
我正在做一个手指手语应用程序。 我已设法从用户输入中获取字符串的子字符串。 现在,每个字母都有来自我的sqlite的相应视频文件,我希望它在每个字母之后的视频视图中一次播放一个 表: |字母|视频文件名| |a |字母a| |b |字母b| |字母c等等Android 如何通过循环播放从sqlite非同步(排队)到videoView的多个视频?,android,sqlite,while-loop,android-videoview,Android,Sqlite,While Loop,Android Videoview,我正在做一个手指手语应用程序。 我已设法从用户输入中获取字符串的子字符串。 现在,每个字母都有来自我的sqlite的相应视频文件,我希望它在每个字母之后的视频视图中一次播放一个 表: |字母|视频文件名| |a |字母a| |b |字母b| |字母c等等 public void fingerspell(View v) { CharSequence charSequence = etsearch.getText(); String s = charSequence.toStrin
public void fingerspell(View v) {
CharSequence charSequence = etsearch.getText();
String s = charSequence.toString();
int startingletter = 0;
int endingletter = 1;
String desiredString;
int wordlength = etsearch.length();
do{
desiredString = s.substring(startingletter, endingletter);
Cursor c = db.rawQuery("SELECT * FROM tblletters WHERE letter like '" + desiredString + "'", null);
while (c.moveToNext()) {
Toast.makeText(getApplicationContext(), desiredString, Toast.LENGTH_LONG).show();
String video = c.getString(1);
int videoResource = getResources().
getIdentifier(video, "raw", getPackageName());
String path = "android.resource://" + getPackageName() + "/" + videoResource;
videoview.setVideoURI(Uri.parse(path));
videoview.start();
videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
//can't put startingletter++ here
}
});
startingletter++;
endingletter++;
}
startingletter++;
endingletter++;
}while(startingletter<wordlength);
}
public void fingerspell(视图五){
CharSequence CharSequence=etsearch.getText();
字符串s=charSequence.toString();
int startingletter=0;
int-endingletter=1;
需要字符串的字符串;
int-wordlength=etsearch.length();
做{
desiredString=s.substring(起始字母、结束字母);
游标c=db.rawQuery(“从tblletters中选择*,其中的字母为“+”desiredString+”,null);
while(c.moveToNext()){
Toast.makeText(getApplicationContext(),desiredString,Toast.LENGTH_LONG).show();
String video=c.getString(1);
int videoResource=getResources()。
getIdentifier(视频,“原始”,getPackageName());
String path=“android.resource://”+getPackageName()+“/”+videoResource;
setVideoURI(Uri.parse(path));
videoview.start();
videoview.setOnCompletionListener(新的MediaPlayer.OnCompletionListener(){
完成时的公共作废(MediaPlayer mp){
//无法将startingletter++放在此处
}
});
startingletter++;
endingletter++;
}
startingletter++;
endingletter++;
}虽然(startingletter我找到了一种方法,但我不确定这是否是正确的编码,但它现在正在工作。根据所了解的情况,我正在循环videoview.setOnCompletionListener,即使它已经是一个循环,并且我还将递增变量声明为全局变量,以便可以从内部类访问它。我对编程不熟悉
CharSequence charSequence = etsearch.getText();
String s = charSequence.toString();
int startingletter = 0;
String desiredString;
int wordlength = etsearch.length();
final ArrayList<String> list = new ArrayList<String>();
while (startingletter < wordlength) {
desiredString = s.substring(startingletter, startingletter + 1);
list.add(desiredString);
startingletter++;
}
// Toast.makeText(getApplicationContext(), list.get(3), Toast.LENGTH_LONG).show();
listsize = list.size();
pogi = list.get(0);
// Toast.makeText(getApplicationContext(), pogi, Toast.LENGTH_LONG).show();
Cursor c = db.rawQuery("SELECT * FROM tblletters WHERE letter like '" + pogi + "'", null);
while (c.moveToNext()) {
String video = c.getString(1);
int videoResource = getResources().
getIdentifier(video, "raw", getPackageName());
String path = "android.resource://" + getPackageName() + "/" + videoResource;
videoview.setVideoURI(Uri.parse(path));
videoview.start();
}
videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
halimaw++;
if (halimaw < listsize) {
pogi = list.get(halimaw);
Cursor c = db.rawQuery("SELECT * FROM tblletters WHERE letter like '" + pogi + "'", null);
c.moveToNext();
String video = c.getString(1);
int videoResource = getResources().
getIdentifier(video, "raw", getPackageName());
String path = "android.resource://" + getPackageName() + "/" + videoResource;
videoview.setVideoURI(Uri.parse(path));
videoview.start();
} else {
halimaw = 0;
pogi = "";
}
//Toast.makeText(getApplicationContext(), "tapos na", Toast.LENGTH_LONG).show();
}
});
CharSequence CharSequence=etsearch.getText();
字符串s=charSequence.toString();
int startingletter=0;
需要字符串的字符串;
int-wordlength=etsearch.length();
最终ArrayList=新ArrayList();
while(起始字母<字长){
desiredString=s.substring(起始字母,起始字母+1);
列表。添加(所需字符串);
startingletter++;
}
//Toast.makeText(getApplicationContext(),list.get(3),Toast.LENGTH_LONG.show();
listsize=list.size();
pogi=list.get(0);
//Toast.makeText(getApplicationContext(),pogi,Toast.LENGTH_LONG.show();
游标c=db.rawQuery(“从tblletters中选择*,其中的字母类似于“+pogi+”,null);
while(c.moveToNext()){
String video=c.getString(1);
int videoResource=getResources()。
getIdentifier(视频,“原始”,getPackageName());
String path=“android.resource://”+getPackageName()+“/”+videoResource;
setVideoURI(Uri.parse(path));
videoview.start();
}
videoview.setOnCompletionListener(新的MediaPlayer.OnCompletionListener(){
完成时的公共作废(MediaPlayer mp){
halimaw++;
if(halimaw<列表大小){
pogi=list.get(halimaw);
游标c=db.rawQuery(“从tblletters中选择*,其中的字母类似于“+pogi+”,null);
c、 moveToNext();
String video=c.getString(1);
int videoResource=getResources()。
getIdentifier(视频,“原始”,getPackageName());
String path=“android.resource://”+getPackageName()+“/”+videoResource;
setVideoURI(Uri.parse(path));
videoview.start();
}否则{
halimaw=0;
pogi=“”;
}
//Toast.makeText(getApplicationContext(),“tapos na”,Toast.LENGTH_LONG.show();
}
});