小编Sli*_* C.的帖子

媒体播放器开始停止启动

我正在制作一个新的Android声音应用程序.当我点击它时,我做了一个可点击的按钮来播放声音.但我也希望它在第二次点击时停止播放声音.那部分工作正常现在这是问题,当我再次点击按钮再次播放声音时,它不播放它,媒体播放器完全停止.我在论坛上看,但我似乎找不到可以帮助我的答案.这是我的活动:

  MediaPlayer mpButtonClick1;
MediaPlayer mpButtonClick2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.prvi);

    final MediaPlayer mpButtonClick1 = MediaPlayer.create(this, R.raw.spalshm);
    final MediaPlayer mpButtonClick2 = MediaPlayer.create(this, R.raw.splashs);


    Button dugme = (Button) findViewById(R.id.dugme);
    dugme.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mpButtonClick1.isPlaying()) {
                mpButtonClick1.stop();
                mpButtonClick1.reset();

            }
            else {              
                mpButtonClick1.start();

            }


        }   

    });
Run Code Online (Sandbox Code Playgroud)

当我尝试编写mpButtonClick1.prepare(); 我收到错误未处理的异常类型IOE异常

android media-player

12
推荐指数
3
解决办法
2万
查看次数

notifyDataSetChanged不刷新RecyclerView

我有一个奇怪的问题.我切换到RecyclerViewListView,我无法刷新或通知我的变化ListView.我尝试调用Item.this.notifyDataSetChanged(); 和其他方法刷新,View但它不起作用.代替RecyclerView刷新时我滚动(与方向无关).如何RecyclerView更改时如何通知我?

码:

@Override
public void onBindViewHolder(Ids holder, final int position) {
    rowItemClass = (ListViewRow) rowItems.get(position);
    Log.e("swag", "OYOYOYOYOYO");
    if (Globals.isPlaying && Globals.pos == position) {

        if (pausedSamePos == true) {
            holder.pauseed_play.setVisibility(View.VISIBLE);
            holder.playing_pause.setVisibility(View.GONE);
        } else {
            holder.pauseed_play.setVisibility(View.GONE);
            holder.playing_pause.setVisibility(View.VISIBLE);
        }
        holder.song_currenttime_sb.setActive();
        holder.song_duration.setVisibility(View.INVISIBLE);
        holder.song_duration_sb.setVisibility(View.VISIBLE);
        holder.seekbar.setActive();

    } else {
        holder.seekbar.setInactive();
        holder.song_currenttime_sb.setInactive();
        holder.song_icon.setImageResource(rowItemClass.getImageId());
        holder.song_duration_sb.setVisibility(View.INVISIBLE);
        holder.song_duration.setVisibility(View.VISIBLE);
        holder.pauseed_play.setVisibility(View.GONE);
        holder.playing_pause.setVisibility(View.GONE);

    }
    sharedPreference = new SharedPreference();

    holder.song_duration.setTypeface(Globals
            .getTypefaceSecondary(context));
    holder.song_duration_sb.setTypeface(Globals
            .getTypefaceSecondary(context));
    holder.song_name.setTypeface(Globals.getTypefacePrimary(context));
    holder.song_currenttime_sb.setTypeface(Globals
            .getTypefaceSecondary(context));

    holder.song_name.setText(rowItemClass.getTitle());
    holder.song_duration.setText(rowItemClass.getDesc());

    holder.song_duration_sb.setText(rowItemClass.getDesc()); …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

8
推荐指数
2
解决办法
9111
查看次数

无法向我的应用添加广告.

因此,我在浏览器中使用了Google Play服务,https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#play ,我遇到了一个问题.他们在他们的网站上提供的代码不起作用.我得到错误.

    package puske.com;

import com.google.android.gms.ads.*;
import com.google.ads.AdSize;
import com.google.ads.AdView;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;

public class Menu extends Activity {
private AdView adView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);
    // Create the adView.
    adView = new AdView(this);
    adView.setAdUnitId(MY_AD_UNIT_ID);
    adView.setAdSize(AdSize.BANNER);

    // Lookup your LinearLayout assuming it's been given
    // the attribute android:id="@+id/mainLayout".
    RelativeLayout layout = (RelativeLayout)findViewById(R.id.menuz);

    // Add the adView to it.
    layout.addView(adView);

    // Initiate a generic request.
    AdRequest …
Run Code Online (Sandbox Code Playgroud)

android banner admob google-play-services

6
推荐指数
1
解决办法
5856
查看次数

没有广告Android时隐藏横幅广告空间

我最近从Admob SDK改为GPS Lib,有一件事困扰着我.我有一个简单的视图来定义我的布局中的行,以防止用户无意中点击广告.使用Admob SDK时,如果没有广告,该行会降至布局的底部,但使用GPS Lib,该视图仍会保留在原来的位置. 在此输入图像描述

当没有广告时,当用户在离线模式下使用应用时,就会出现空洞的丑陋空间. 在此输入图像描述

如果没有广告,我该如何摆脱这个空间?这是我的XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/back2" >
    <RelativeLayout
        android:id="@+id/upperBar"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:background="#000000" >
        <RelativeLayout
            android:id="@+id/RelativeLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:background="@drawable/bar"
            android:paddingBottom="2dp"
            android:paddingLeft="2dp"
            android:paddingRight="2dp"
            android:paddingTop="2dp" >
            <ImageButton
                android:id="@+id/infop"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:background="@drawable/info_select_blue" />
            <ImageButton
                android:id="@+id/share"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:background="@drawable/share_selector_blue" />
            <ImageButton
                android:id="@+id/moreaps"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                android:layout_marginRight="20dp"
                android:background="@drawable/more_selector_blue" />
        </RelativeLayout>
    </RelativeLayout>
    <GridView
        android:id="@+id/grid_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/view"
        android:layout_below="@+id/sbsz"
        android:columnWidth="110dp"
        android:horizontalSpacing="10dp"
        android:listSelector="#00000000"
        android:numColumns="auto_fit"
        android:verticalSpacing="12dp" >
    </GridView>
    <SeekBar
        android:id="@+id/sbsz"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/upperBar"
        android:progressDrawable="@drawable/apptheme_scrubber_progress_horizontal_holo_dark"
        android:thumb="@drawable/apptheme_scrubber_control_selector_holo_dark" /> …
Run Code Online (Sandbox Code Playgroud)

android ads view

6
推荐指数
2
解决办法
4567
查看次数

auto和preferExternal安装位置Android清单之间的区别

android清单autopreferExternal安装位置有什么区别?两个选项都可以在外部存储器上安装应用 它是大而重要的吗?设置哪个更好?

android location install manifest

5
推荐指数
2
解决办法
3326
查看次数

On touch Listener在手指移动Android时不会释放按钮

我有一个RelativeLayout15个按钮,我正在开发一个新项目,并且OnTouchListener,我希望我的应用程序执行以下操作:当用户触摸例如按钮1时,Mp1将开始播放,直到用户抬起他的手指或将其移动到按钮2 ,然后按钮2上的mp2应该开始,依此类推.

但是这里发生了什么,用户触摸屏幕并且升降机工作正常的部分,但是如果用户移动他的手指(而不是抬起)如果按下按钮1它仍将处于按下状态(动作向下)直到用户抬起他的手指.像这样的东西: 在此输入图像描述

我的问题:

当手指离开按钮边框以停止按钮并打开任何按下按钮(手指触摸的地方)时,我需要添加什么?我的代码:

sound1.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
                    pressed1 = true;
                    mp1 = MediaPlayer.create(MainClass.this, R.raw.item1);
                    mp1.start();
                    sound1.setBackgroundResource(R.drawable.pad_pressed);
                    if (looping == true) {
                        mp1.setLooping(true);
                    } else if (looping == false) {
                        mp1.setLooping(false);
                    }

                } else if (event.getAction() == android.view.MotionEvent.ACTION_UP) {
                    pressed1 = false;
                    mp1.stop();
                    mp1.reset();
                    mp1.release();
                    sound1.setBackgroundResource(R.drawable.pad_normal);
                }
                return true;
            }
        });
Run Code Online (Sandbox Code Playgroud)

android move button ontouchlistener

5
推荐指数
1
解决办法
4190
查看次数

适配器类中的super.onActivityResult?Android的

我有RecyclerView非常复杂的项目,多个按钮/图像/文本.要访问每个按钮/图像,我在Adapter类中设置了单击Listeners.

但现在我正在尝试添加功能来设置联系人铃声,我有一个问题.

我正在调用onActivityResult方法,如下所示:

Intent contactIntent = new Intent(Intent.ACTION_PICK);
                contactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);
                contactIntent.putExtra("RINGTONE_POSITION", position);
                ((Activity) context).startActivityForResult(contactIntent, CONTACT_CHOOSER_ACTIVITY_CODE );
Run Code Online (Sandbox Code Playgroud)

这很好.但问题出在这里:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        switch (requestCode) {
....
...
...
}
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:Cannot resolve method 'onActivityResult(int, int, android.content.Intent)' 有什么办法可以避免这种情况吗?或者是否可以在适配器类中使用此方法?如果不是我该怎么办?

android onactivityresult

4
推荐指数
1
解决办法
2万
查看次数

如何阻止Media Player在彼此之上播放多个声音

如何阻止MediaPlayer相互播放?我希望应用程序中的媒体播放器只播放1个声音.现在,当我播放1个声音,然后播放另一个声音时,它们同时播放.我希望当我播放第二个声音时,第一个停止,所以它们不会在彼此之上播放.我的代码:

 mp=MediaPlayer.create(this, R.raw.barets);
    ImageButton dugme1 = (ImageButton) findViewById(R.id.dugme1);
    dugme1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp.isPlaying()){
                mp.pause();
                mp.seekTo(0);
            }
            else{
                mp.start();
            }
            }

    });

    mp2=MediaPlayer.create(this, R.raw.dragunov);
    ImageButton dugme2 = (ImageButton) findViewById(R.id.dugme2);
    dugme2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp2.isPlaying()){
                mp2.pause();
                mp2.seekTo(0);
            }
            else{
                mp2.start();
            }
            }

    });

    mp3=MediaPlayer.create(this, R.raw.g3s);
    ImageButton dugme3= (ImageButton) findViewById(R.id.dugme3);
    dugme3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp3.isPlaying()){
                mp3.pause();
                mp3.seekTo(0);
            }
            else{
                mp3.start();
            }
            }

    });
    mp4=MediaPlayer.create(this, R.raw.psg1); …
Run Code Online (Sandbox Code Playgroud)

audio android media-player

2
推荐指数
1
解决办法
3319
查看次数

Android动画向上滑动

如何制作幻灯片动画?感谢用户Romain Piel在本主题中获得此代码.但我无法想象如何制作逆向效果.那个动画用于向下滑动,但我想要向上滑动.我怎样才能做到这一点?我很抱歉,如果这是一个糟糕的问题,但动画总是令我感到困惑.我也尝试过其他代码,但看起来并不好看.

overridePendingTransition(R.anim.push_down_in,R.anim.push_down_out);
Run Code Online (Sandbox Code Playgroud)

R.anim.push_down_in:

<?xml version="1.0" encoding="utf-8"?>  
<set xmlns:android="http://schemas.android.com/apk/res/android">  
  <translate android:fromYDelta="-100%p" android:toYDelta="0" android:duration="900"/>
</set>  
Run Code Online (Sandbox Code Playgroud)

R.anim.push_down_out:

<?xml version="1.0" encoding="utf-8"?>  
<set xmlns:android="http://schemas.android.com/apk/res/android">  
  <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="900"/>
</set>  
Run Code Online (Sandbox Code Playgroud)

animation android slide

2
推荐指数
1
解决办法
4010
查看次数

每个新录制声音的不同文件名

我正在制作录音应用程序,我遇到了一个小问题.我想要保存录制的文件,它工作正常,除了名称有问题.我有这个代码:

int num = 0;
File FolderCreator = new File(
        Environment.getExternalStorageDirectory()
                + "/My Recored Songs/Pads/");
File FileCreator = new File(FolderCreator, "My Record.mp3");
Run Code Online (Sandbox Code Playgroud)

然后

if (FileCreator.exists()) {
    num++;
    FileCreator = new File(FolderCreator, "My Record "
            + num +".mp3");
}
Run Code Online (Sandbox Code Playgroud)

它有效.但问题是,如果我离开应用程序并再次启动它,它将从1开始计数并覆盖以前的文件.我怎么能防止这种情况?

filenames android

2
推荐指数
1
解决办法
142
查看次数

ListView回收开关搜索栏位置

我有一个奇怪的问题.我有一个自定义ListViewBaseAdapter.在我的ListView行布局中,我有几个TextViews Buttons,和a SeekBar.一切都很好,没有任何问题,除了回收.

会发生什么:SeekBar除了可见之外,所有的都是隐藏的.的SeekBar是,当看到MediaPlayer上排播放.那部分也很有效.

但是,当用户向上或向下滚动,并且具有可见的行SeekBar不在视图中时,它会循环使用,并且SeekBar也会被回收,并且即使它不可见并且该行未播放(mp)也会不断更新.当用户向后滚动以返回正在播放的视图时,SeekBar是可见的,但是没有更新,它的位置是0.而是随机SeekBar更新,但它不可见(我测试的时候所有SeekBar的都可见所以我知道发生)

当然,我可以完成最愚蠢的解决方案并禁用ListView回收,但这会让用户体验非常糟糕,并且可能会使应用程序耗尽内存,并且使用LargeHeap是蹩脚的.所以以下方法是不可能的.

@Override
public int getViewTypeCount() {
    return getCount();
}

@Override
public int getItemViewType(int position) {
    return position;
}
Run Code Online (Sandbox Code Playgroud)

我的问题:这有什么明显的解决方案吗?如何仅保留一行不被回收?我不会发布代码,直到它真的有必要,代码太大了.相反,我将发布与问题相关的重要部分:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View row = convertView;
    holder = null;
    if (row == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); …
Run Code Online (Sandbox Code Playgroud)

android listview seekbar android-recyclerview

2
推荐指数
1
解决办法
855
查看次数