真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MediaBrowserService音樂播放項(xiàng)目-創(chuàng)新互聯(lián)

MediaBrowserService 音樂播放項(xiàng)目,本項(xiàng)目主要有如下功能:
(1):支持播放在線音樂
(2):按住home鍵退出頁面后顯示通知欄部分播放提示,
 (3) : 支持切換上下首歌曲
本項(xiàng)目來自:https://github.com/googlesamples/android-MediaBrowserService
 首先配置如下服務(wù):
        android:name=".service.MusicService"
       android:exported="true">
     
        
     

   

站在用戶的角度思考問題,與客戶深入溝通,找到金牛網(wǎng)站設(shè)計(jì)與金牛網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋金牛地區(qū)。

主要代碼如下:

public class BrowseFragment extends Fragment {

   private static final String TAG = LogHelper.makeLogTag(BrowseFragment.class.getSimpleName());

   public static final String ARG_MEDIA_ID = "media_id";

   public static interface FragmentDataHelper {
       void onMediaItemSelected(MediaBrowser.MediaItem item);
   }

   // The mediaId to be used for subscribing for children using the MediaBrowser.
   private String mMediaId;

   private MediaBrowser mMediaBrowser;
   private BrowseAdapter mBrowserAdapter;

   private MediaBrowser.SubscriptionCallback mSubscriptionCallback = new MediaBrowser.SubscriptionCallback() {

       @Override
       public void onChildrenLoaded(String parentId, List children) {
           mBrowserAdapter.clear();
           mBrowserAdapter.notifyDataSetInvalidated();
           for (MediaBrowser.MediaItem item : children) {
               mBrowserAdapter.add(item);
           }
           mBrowserAdapter.notifyDataSetChanged();
       }

       @Override
       public void onError(String id) {
           Toast.makeText(getActivity(), R.string.error_loading_media,
                   Toast.LENGTH_LONG).show();
       }
   };

   private MediaBrowser.ConnectionCallback mConnectionCallback =
           new MediaBrowser.ConnectionCallback() {
       @Override
       public void onConnected() {
           LogHelper.d(TAG, "onConnected: session token " + mMediaBrowser.getSessionToken());

           if (mMediaId == null) {
               mMediaId = mMediaBrowser.getRoot();
           }
           mMediaBrowser.subscribe(mMediaId, mSubscriptionCallback);
           if (mMediaBrowser.getSessionToken() == null) {
               throw new IllegalArgumentException("No Session token");
           }
           MediaController mediaController = new MediaController(getActivity(),
                   mMediaBrowser.getSessionToken());
           getActivity().setMediaController(mediaController);
       }

       @Override
       public void onConnectionFailed() {
           LogHelper.d(TAG, "onConnectionFailed");
       }

       @Override
       public void onConnectionSuspended() {
           LogHelper.d(TAG, "onConnectionSuspended");
           getActivity().setMediaController(null);
       }
   };

   public static BrowseFragment newInstance(String mediaId) {
       Bundle args = new Bundle();
       args.putString(ARG_MEDIA_ID, mediaId);
       BrowseFragment fragment = new BrowseFragment();
       fragment.setArguments(args);
       return fragment;
   }

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
                            Bundle savedInstanceState) {
       View rootView = inflater.inflate(R.layout.fragment_list, container, false);

       mBrowserAdapter = new BrowseAdapter(getActivity());

       View controls = rootView.findViewById(R.id.controls);
       controls.setVisibility(View.GONE);

       ListView listView = (ListView) rootView.findViewById(R.id.list_view);
       listView.setAdapter(mBrowserAdapter);
       listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
           public void onItemClick(AdapterView parent, View view, int position, long id) {
               MediaBrowser.MediaItem item = mBrowserAdapter.getItem(position);
               try {
                   FragmentDataHelper listener = (FragmentDataHelper) getActivity();
                   listener.onMediaItemSelected(item);
               } catch (ClassCastException ex) {
                   Log.e(TAG, "Exception trying to cast to FragmentDataHelper", ex);
               }
           }
       });

       Bundle args = getArguments();
       mMediaId = args.getString(ARG_MEDIA_ID, null);

       mMediaBrowser = new MediaBrowser(getActivity(),
               new ComponentName(getActivity(), MusicService.class),
               mConnectionCallback, null);

       return rootView;
   }

   @Override
   public void onStart() {
       super.onStart();
       mMediaBrowser.connect();
   }

   @Override
   public void onStop() {
       super.onStop();
       mMediaBrowser.disconnect();
   }

   // An adapter for showing the list of browsed MediaItem's
   private static class BrowseAdapter extends ArrayAdapter {

       public BrowseAdapter(Context context) {
           super(context, R.layout.media_list_item, new ArrayList());
       }

       static class ViewHolder {
           ImageView mImageView;
           TextView mTitleView;
           TextView mDescriptionView;
       }

       @Override
       public View getView(int position, View convertView, ViewGroup parent) {

           ViewHolder holder;

           if (convertView == null) {
               convertView = LayoutInflater.from(getContext())
                       .inflate(R.layout.media_list_item, parent, false);
               holder = new ViewHolder();
               holder.mImageView = (ImageView) convertView.findViewById(R.id.play_eq);
               holder.mImageView.setVisibility(View.GONE);
               holder.mTitleView = (TextView) convertView.findViewById(R.id.title);
               holder.mDescriptionView = (TextView) convertView.findViewById(R.id.description);
               convertView.setTag(holder);
           } else {
               holder = (ViewHolder) convertView.getTag();
           }

           MediaBrowser.MediaItem item = getItem(position);
           holder.mTitleView.setText(item.getDescription().getTitle());
           holder.mDescriptionView.setText(item.getDescription().getDescription());
           if (item.isPlayable()) {
               holder.mImageView.setImageDrawable(
                       getContext().getDrawable(R.drawable.ic_play_arrow_white_24dp));
               holder.mImageView.setVisibility(View.VISIBLE);
           }
           return convertView;
       }
   }
}

運(yùn)行效果:

下載地址:http://www.itlanbao.com/code/20151123/10000/100656.html

  • MediaBrowserService 音樂播放項(xiàng)目

相關(guān)代碼

  • MediaBrowserService 音樂播放項(xiàng)目

  • 很簡(jiǎn)單卻很酷的粒子破碎效果

  • 一個(gè)不錯(cuò)的訂餐軟件

  • android一個(gè)不錯(cuò)的圖片瀏覽效果

  • DragToSortImage相冊(cè)加載和圖片拖拽

  • 仿微信下拉錄制視頻

  • 一個(gè)很酷的加載loading效果

  • RecyclerView加載不同view實(shí)現(xiàn)效果

  • 超酷的時(shí)間選擇控件

  • 漂亮的時(shí)光軸

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站題目:MediaBrowserService音樂播放項(xiàng)目-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://weahome.cn/article/dpjsjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部