It works in Player if the constraints definition is made to be within the DynamicModule:
DynamicModule[
  {pt={0.5,0},constrain},
  constrain[{x_,y_}]:={Piecewise[{{0,x<0},{x,0<=x<=1},{1,x>1}}],0};
  Graphics[
    {
    {Thick,Circle[]},
    Line[{{0,0},Dynamic[pt]}],
    Locator[Dynamic[pt,(pt=constrain[#])&]]
    },
    PlotRange->1.1
  ]
]