آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

پخش mp3 از سرور اینترنتی به وسلله ی دریافت لینک از دیتابیس

apriliyaa  10 سال پیش  10 سال پیش
0 0

سلام دوستان من یه دیتابیس دارم (sqlite) که اطلاعات رو ازش میگیرم میخام برای هر مقدار از دیتابیس یه فایل صوتی اختصاص بدم برای همین یه فیلد به نام صدا ایجاد کردم و لینک دانلود فایل صوتی رو توش قرار دادم حالا میخام ببینم چه جوری میشه اونو تو دیتابیس فراخونی کرد و آنلاین پخشش کرد ؟ 

این کد رو نگاه بندازید تمام ایتم ها رو از دیتابیس گرفتم بدون دردسر اما نمی تونم آدرس فایل mp3 رو از دیتابیس بگیرم :

public class ShowData extends Activity implements OnClickListener, OnTouchListener, OnCompletionListener, OnBufferingUpdateListener{
 
 
 
 
    Dastan dastan;
    Context c;
    DBAdapter db;
    SharedPreferences sh;
    int size;
    boolean rushan;
    String font;
    Typeface my_font;
    static MediaPlayer mPlayer;
    Button play_button, pause_button;
    TextView text_shown;
    private Button btn_play,btn_pause,btn_stop;
    private SeekBar seekBar;
    private MediaPlayer mediaPlayer;
    private int lengthOfAudio;
    private final String URL = "http://server8.mp3quran.net/bu_khtr/001.mp3";
    private final Handler handler = new Handler();
    private final Runnable r = new Runnable()
    {    
           @Override
           public void run() {
                  updateSeekProgress();                                
           }
    };
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_dastan);
        initialize_Controls();
    }
         private void initialize_Controls()
     {
            btn_play = (Button)findViewById(R.id.btn_play);
            btn_play.setOnClickListener(this);
            btn_pause = (Button)findViewById(R.id.btn_pause);
            btn_pause.setOnClickListener(this);
            btn_pause.setEnabled(false);
            btn_stop = (Button)findViewById(R.id.btn_stop);
            btn_stop.setOnClickListener(this);
            btn_stop.setEnabled(false);
 
 
            seekBar = (SeekBar)findViewById(R.id.seekBar);
            seekBar.setOnTouchListener(this);
 
 
            mediaPlayer = new MediaPlayer();
            mediaPlayer.setOnBufferingUpdateListener(this);
            mediaPlayer.setOnCompletionListener(this);
 
 
     
        sh = getSharedPreferences("setting", 0);
        size = sh.getInt("size?", 20);
        rushan = sh.getBoolean("rushan?", true);
        font = sh.getString("font?", "Bnazanin");
        my_font = Typeface.createFromAsset(getAssets(), font + ".ttf");
 
 
        c = getBaseContext();
        db = new DBAdapter(c);
        db.open();
 
 
        dastan = (Dastan) getIntent().getExtras().get("thisdastan");
 
 
        Log.i(DBAdapter.TAG, "dastan gerefte shod: " + dastan.getOnvan());
 
 
        TextView name = (TextView) findViewById(R.id.name);
 
 
        name.setBackgroundColor(Color.parseColor("#FFDEAD"  ));
        name.setShadowLayer(1, 0, 0, Color.BLACK);
        name.setText(dastan.getOnvan());
 
 
        ImageView ax2 = (ImageView) findViewById(R.id.ax2);
 
 
        TextView T2_text = (TextView) findViewById(R.id.T2_text);
        T2_text.setText(dastan.getTell());
        TextView T1_text = (TextView) findViewById(R.id.T1_text);
        T1_text.setText(dastan.getAdres());
 
 
        TextView T3_text = (TextView) findViewById(R.id.T3_text);
 
 
        TextView T4_text = (TextView) findViewById(R.id.T4_text);
        T2_text.setTextSize(size);
        T2_text.setTypeface(my_font);
        T1_text.setTextSize(size);
        T1_text.setTypeface(my_font);
 
 
        if (rushan) {
            getWindow()
                    .addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCR  EEN_ON);
            Log.i(DBAdapter.TAG, "nur e safhe rushan mimanad");
        }
 
 
        T2_text.setText(dastan.getTell());
 
 
        int
 
 
        imageResource = c.getResources().getIdentifier(dastan.getAx2(),
                "drawable", c.getPackageName());
        ax2.setImageResource(imageResource);
     }
     
 
@Override
public void onBufferingUpdate(MediaPlayer mediaPlayer, int percent)
{
       seekBar.setSecondaryProgress(percent);
}
 
 
@Override
public void onCompletion(MediaPlayer mp)
{
       btn_play.setEnabled(true);
       btn_pause.setEnabled(false);
       btn_stop.setEnabled(false);
}
 
 
@Override
public boolean onTouch(View v, MotionEvent event)
{
       if (mediaPlayer.isPlaying())
       {
              SeekBar tmpSeekBar = (SeekBar)v;
              mediaPlayer.seekTo((lengthOfAudio / 100) * tmpSeekBar.getProgress() );
       }
       return false;
}
 
 
@Override
public void onClick(View view)
{
 
 
       try
       {                        
              mediaPlayer.setDataSource(URL);
              mediaPlayer.prepare();
              lengthOfAudio = mediaPlayer.getDuration();                  
       
       }
       catch (Exception e)
       {
              //Log.e("Error", e.getMessage());
       }
 
 
       switch (view.getId())
       {
       case R.id.btn_play:             
              playAudio();
              break;
       case R.id.btn_pause:
              pauseAudio();
              break;
       case R.id.btn_stop:
              stopAudio();
              break;
       default:
              break;
       }
 
 
       updateSeekProgress();
}
 
 
private void updateSeekProgress()
{
       if (mediaPlayer.isPlaying())
       {
              seekBar.setProgress((int)(((float)mediaPlayer.getC  urrentPosition() / lengthOfAudio) * 100));
              handler.postDelayed(r, 1000);
       }
}
 
 
private void stopAudio()
{
       if(mediaPlayer!=null)
       {
              mediaPlayer.stop();
       }
       btn_play.setEnabled(true);
       btn_pause.setEnabled(false);
       btn_stop.setEnabled(false);
       seekBar.setProgress(0);
}
 
 
private void pauseAudio()
{
       if(mediaPlayer!=null)
       {
              mediaPlayer.pause();
       }
       btn_play.setEnabled(true);
       btn_pause.setEnabled(false);
}
 
 
private void playAudio()
{
       if(mediaPlayer!=null)
       {
              mediaPlayer.start();
       }           
       btn_play.setEnabled(false);
       btn_pause.setEnabled(true);
       btn_stop.setEnabled(true);
}
 
 
 
 
 
 
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        db.updateContact(dastan);
        db.close();
    }
 
 
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        db.open();
    }
 
 
}
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
amiryaser  10 سال پیش
+1 0

 Cursor cursor = G.database.rawQuery("SELECT * FROM Track WHERE Singer ='" + Singername + "' ORDER BY Year DESC", null);
public ArrayList<StructTrack> Note = new ArrayList<StructTrack>();
while (cursor.moveToNext()) {
StructTrack Track = new StructTrack();
Track.Url = cursor.getString(cursor.getColumnIndex("Url"));
Track.Trackname = cursor.getString(cursor.getColumnIndex("Name"));
Note.add(Track);

}

این کد میاد یه سلکت میزنه به دیتابیست با شرطی که مورد نظرت هست (مثلا اینجا من اومدم روی سطرهایی که خواننده ی مورد نظرم هست سلکت کردم)
بعدش توی while  میاد یکی یکی ستون های url و هرچیزی دیگه مثل سال انتشار یا ... که توی دیتابیس تعریف کردیو میگیری و میریزی توی لیست آرایه ی نوت که قبلا تعریف شده و در پایان همه ی لینکها توی آرایه ی  note  ذخیره میشن
و میتونی ازشون استفاده کنی
استاد آقاجانی توی بخش  database  کامل توضیح دادند پیشنهاد میکنم یه بار با دقت ببینید.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .