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
]
]